1.package的作用:将类打包,相当于文件夹,把一个类放到某个文件夹下
2.创建一个类的实例--对象
//1.分配存储空间 2.调用这个类的构造函数
Plane p1=new Plane();
3.
public class Plane {
public String name;
//在构造函数初始化
public Plane() {
this.name="p1";
}
}
//如果不在构造函数初始,那么这么直接输出的是null
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Plane p1=new Plane();
System.out.print("飞机的名字:"+p1.name);//输出p1
p1.name="p2";
System.out.print("飞机的名字:"+p1.name);//输出p2
}
}
4.创建多个对象也可以用对象数组
public static void main(String[] args) {
// TODO Auto-generated method stub
//对象数组
Plane allp[]=new Plane[20];
for(int i=0;i<20;i++) {
allp[i]=new Plane();
}
allp[4].name="p3";
}
5.把重要的成员变量设为私有的,外部不能直接访问,外部可以通过其属性方法set()和get()读写这个成员变量。
public class Plane {
public String name;
//返回类型是这个变量的类型
public String getName() {
return name;
}
//是当前的name被赋值
public void setName(String name) {
this.name = name;
}
}
优势:赋值的时候可以进行判断值是否有效,以及修改其属性时,把与之相关的属性也修改,体现面对对象编程的封装性,通过函数这个接口对属性进行读写
public class Plane {
public int hp;
public int speed;
public int getHp() {
return hp;
}
public int getSpeed() {
return speed;
}
public void setSpeed(int speed) {
this.speed = speed;
}
public void setHp(int hp) {
if(hp>0&&hp<100) {
if (hp>this.hp) {//飞机加血时设置速度增大
this.speed+=10;
}else {
this.speed-=10;//飞机减血时设置速度减小
}
this.hp = hp;
}
}
}
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
//对象数组
Plane p1=new Plane();
p1.setHp(40);
p1.setSpeed(50);
System.out.println("生命值"+p1.getHp());
System.out.println("速度"+p1.getSpeed());
p1.setHp(50);
System.out.println("生命值"+p1.getHp());
System.out.println("速度"+p1.getSpeed());
}
}
输出:
生命值40
速度50
生命值50
速度60
6.方法覆盖:在子类中定义和父类相同的方法,包括参数列表也相同,重载是参数列表不同。