java中的类与对象
类实际上定义的是一种数据类型,这种数据类型就是对象类型,所以我们可以使用类名称来申明对象变量。
申明对象变量后还不能直接使用对象,需要用new运算符创建实体对象后才能使用对象。
class point(){
int x,y;
point(){//构造函数 与类名同名
x=5;
y=5;
}
void output(){
System.out.printin(x);
System.out.printin(y);
}
public static void main(String[] args)
{
point ft;//申明对象变量
ft=new point();//创建对象实体
ft.x=3;
ft.y=4;
ft.output();
}
}
构造方法主要为类的对象初始化对象的状态
我们不能直接调用后再方法,必须通过new关键字来自动调用,从而创建类的实例。
当构造函数中自己定义好了构造函数后,java编译器就不会提供缺省的构造函数
new关键字的用作:
为对象分配内存空间
引起对象构造方法的调用
为对象返回一个引用
各种数据类型的默认值
0 false '0' null
this是实例化后的对象本身;this与调用它的对象建立联系,pt 与 pt2 分别调用this时,this分别代表pt或pt2.同时由于用new创建的pt和pt2,所以每一个都有各自的内存空间。且在构造函数中调用this其他的构造方法时需要放在最前面
对于静态的方法不需要产生类对象 直接使用类名.方法直接调用,静态的方法属于类本身不属于对象的方法。
静态的方法static不能调用非静态的变量。静态的变量属于类本身不属于某一个对象
非静态的方法是可以调用静态的方法和变量的。
实例方法不是静态方法
定义常量时用final double PI=3.1415;必须初始化或者在构造函数中初始化
继承
class Animal{
int weight,height;
void breath(){
System.out.printin("animal breath");
}
}
class fish extends Animal{
}
class Intergration{
public static void main(String[] args)
Aniaml an=new Animal();
fish fi=new fish();
an.breath();
fi.breath();
}
super 可以使用super访问父类被子类隐藏的变量或者覆盖的方法
instanceof 判断一个对象是否是某一个类实例对象
if(an instanceof animal )