类
类的定义
package test1;
class Point{
private int x;
private int y;
//构造函数(想在初始化的时候赋值)
public Point(int x,int y){
this.x=x;
this.y=y;
}
public Point(int x){
this.x=x;
}
//赋值函数(修改)
//接口
public void setX(int x){
this.x=x;
}
public void setY(int y){
this.y=y;
}
//取值函数(查询)
public int getX(){
return x;
}
public int getY(){
return y;
}
public String toString(){
return String.format("(%d,%d)",x,y);//格式化输出
}
}
public class Main{
public static void main(String[] args){
Point point = new Point(3);//实例
point.setX(4);
System.out.println(point.getX());
}
}
类的继承
package test1;
class Point{
private int x;//只有class里面能访问(子类中也不能访问)
private int y;
//构造函数(想在初始化的时候赋值)
public Point(int x,int y){
this.x=x;
this.y=y;
}
public Point(int x){
this.x=x;
}
//赋值函数(修改)
//接口
public void setX(int x){
this.x=x;
}
public void setY(int y){
this.y=y;
}
//取值函数(查询)
public int getX(){
return x;
}
public int getY(){
return y;
}
public String toString(){
return String.format("(%d,%d)",x,y);//格式化输出
}
}
class colorPoint extends Point{//新建一个有颜色的点(子类)——和父类只有一点点不一样
private String color;
//写一个默认的构造函数
public colorPoint(int x,int y,String color){
super(x,y);//调用父类的构造函数
this.color=color;
}
public String getColor(){
return color;
}
public void setColor(String x){
this.color=color;
}
public String toString(){
return String.format(("(%d,%d,%s)"),super.getX(),super.getY(),color);//引用父类
//会把父类的函数覆盖掉
}
}
public class Main{
public static void main(String[] args){
colorPoint colorpoint = new colorPoint(3,4,"red");
System.out.println(colorpoint.toString());
System.out.println(colorpoint.getX());//可以调用父类的函数
System.out.println(colorpoint.getColor());//调用自己的函数
}
}
类的多态
public class Main{
public static void main(String[] args){
Point point = new Point(3,4);
colorPoint colorpoint = new colorPoint(5,6,"green");
// 多态,同一个类的实例,调用相同的函数,运行结果不同
System.out.println(point.toString());
System.out.println(colorpoint.toString());
}
}
放到多个文件里
Main——新建软件包——软件包里新建类——import引用进类里面
接口
以规范不同程序员
接口的定义
interface Role{//多人协作时,必须写
public void greet();
public void move();
public int getSpeed();
}
接口的继承
interface Hero extends Role,Role2{//英雄可以攻击 //接口可以继承多个接口,类只能继承一个类
public void attack();
}
接口的实现
package test1;
interface Role{//多人协作时,必须写
public void greet();
public void move();
public int getSpeed();
}
interface Hero extends Role{//英雄可以攻击 //接口可以继承多个接口,类只能继承一个类
public void attack();
}
class xiaoqiao implements Hero{//实现接口(可以多个) 用类
private final String name = "xiaoqiao";//不希望修改 英雄名叫小乔
public void greet(){//打招呼的内容——小乔:Hi!
System.out.println(name+":Hi!");
}
public void move(){
System.out.println(name+":move!");
}
public int getSpeed(){
return 10;
}
public void attack(){
System.out.println(name+":attack!");
}
}
public class Main{
public static void main(String[] args){
xiaoqiao xq = new xiaoqiao();//用类定义
xq.greet();
}
}
Hero xq = new xiaoqiao();//用类定义——实现后,可以往回放(放到它接口的引用上)
或者
Role xq = new xiaoqiao();//用类定义——实现后,可以往回放(放到它接口的引用上)
接口的多态的应用
package test1;
import java.util.Scanner;
interface Role{//多人协作时,必须写
public void greet();
public void move();
public int getSpeed();
}
interface Hero extends Role{//英雄可以攻击 //接口可以继承多个接口,类只能继承一个类
public void attack();
}
class xiaoqiao implements Hero{//实现接口(可以多个) 用类
private final String name = "xiaoqiao";//不希望修改 英雄名叫小乔
public void greet(){//打招呼的内容——小乔:Hi!
System.out.println(name+":Hi!");
}
public void move(){
System.out.println(name+":move!");
}
public int getSpeed(){
return 10;
}
public void attack(){
System.out.println(name+":attack!");
}
}
class daqiao implements Hero{//实现接口(可以多个) 用类
private final String name = "daqiao";//不希望修改 英雄名叫小乔
public void greet(){//打招呼的内容——大乔:Hi!
System.out.println(name+":Hi!");
}
public void move(){
System.out.println(name+":move!");
}
public int getSpeed(){
return 10;
}
public void attack(){
System.out.println(name+":attack!");
}
}
public class Main{
public static void main(String[] args){
//多态
Scanner sc = new Scanner(System.in);
System.out.println("请选择英雄");
String name = sc.next();
Hero hero;//定义一个英雄
if(name.equals("xiaoqiao")) hero = new xiaoqiao();
else hero = new daqiao();
hero.greet();
}
}
泛型
Stack<Double> stk = new Stack<Double>();//泛型
ctrl+点击————查看IDEA自带原文档