java基础
java面向对象
类和对象
对象的引用
在java中,null是一种特殊的常量,但一个变量的值为null是,则表示该变量不指向任何一个对象。
构造方法
有参构造方法
无参构造方法
构造方法重载
class Person{
int age;
public Person(int a){
age=a;
}
public void speak(){
System.out.println(age);
}
}
this关键字解决局部变量名称和成员变量名称冲突问题。
extends
子类在实例化时,默认调用了父类无参的构造方法。早定义一个类事,如果没有
特殊需求,尽量咋类中定义一个无参的构造方法,避免被继承时出现错误。
抽象类和接口
抽象类
抽象方法:
abstract void say();
没有方法体的方法,必须使用abstract关键字来修饰。
但一个类中包含了抽象方法,改类必须使用abstract关键字来修饰,使用abstract修饰的类为
抽象类 。
-
包含抽象方法的类必须声明为抽象类,但抽象类可以不包含任何抽象方法,只需要使用abstract关键字来修饰即可。
-
抽象亏是不可以被实例化的,因为抽象类中有可能包含抽象方法,抽象方法是没有方法体的,不可以被调用。
接口
如果一个抽象类中的所有方法都是抽象的,则可以将这个类用另外一种方式定义。即接口
接口是由常量和抽象方法组成的特殊类,是对抽象类的进一步抽象。
接口 使用interface关键字来声明
implemnents 关键字实现类
多态
继承是多态实现的基础
在java中,为了实现多态,允许使用一个父类类型的变量来引用一个子类类的对象,根据被引用子类对象特征的不同,得到不同的运行结果。
多态解决了方法同名的问题,同时是程序变得更加灵活,从而有效地提高了程序的可扩展性和可维护性。
对象的类型转换:
Animal an1= new Cat(); //将cat对象当做Animal类型来使用
Animal an2=new Dog(); //将Dog对象当做Animal类型使用
在多态中,将子类对象当做父类类型使用的情况。此种情况在java的语言环境中称为“ 向上转型”
将子类对象当做父类使用时 不需要任何显式声明,需要注意的是,
此时不能通过父类变量调用子类中的特有方法。可以调用接口中的方法。
对象 (或者对象引用的变量) intstanceof 类 (或接口)
Object类
equals()
getClass()
hashCode()
toString()
内部类和匿名内部类
内部类:成员内部类,方法内部类,匿名内部类
interface Animal {
void shout();
}
class Cat implemnents Animal{
public void shout(){
System.out.println("ddd");
}
}
public static void animalShout(Animal an){
an.shout();
}
Animal an1= new Cat();
animalShout(an1);
如果方法的参数被定义为一个接口类型,那么就需要定义一个类来实现接口,并根据该类进行对象实例化。除此之外还可以使用匿名内部类来实现接口。
所谓匿名内部类就是没有名字的内部类,表面上看起来它似乎有名字,实际上那并不是它的名字。 当程序中使用匿名内部类时,在定义匿名内部类的地方往往直接创建该类的一个对象 。

浙公网安备 33010602011771号