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修饰的类为
抽象类 。

  1. 包含抽象方法的类必须声明为抽象类,但抽象类可以不包含任何抽象方法,只需要使用abstract关键字来修饰即可。

  2. 抽象亏是不可以被实例化的,因为抽象类中有可能包含抽象方法,抽象方法是没有方法体的,不可以被调用。

接口

如果一个抽象类中的所有方法都是抽象的,则可以将这个类用另外一种方式定义。即接口
接口是由常量和抽象方法组成的特殊类,是对抽象类的进一步抽象。

接口 使用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);

如果方法的参数被定义为一个接口类型,那么就需要定义一个类来实现接口,并根据该类进行对象实例化。除此之外还可以使用匿名内部类来实现接口。

所谓匿名内部类就是没有名字的内部类,表面上看起来它似乎有名字,实际上那并不是它的名字。 当程序中使用匿名内部类时,在定义匿名内部类的地方往往直接创建该类的一个对象 。

posted @ 2019-04-01 11:08  oneboi  阅读(79)  评论(0)    收藏  举报