Java笔记(基础第三篇)

面向对象的特点:

封装 继承 多态

类的构造方法

如果在类中定义的构造方法都不是无参的构造方法,则编译器不会为类设置一个默认的无参构造方法,当视图调用无参构造方法实例化一个对象时,编译器会报错,所以只有在类中没有定义任何构造方法时,编译器才会在该类中自动创建一个不带参数的构造方法。

 

静态变量、常量和方法

由static修饰的变量、常量和方法被称作静态变量、常量和方法。

被声明为static的变量、常量和方法被称为静态成员。静态成员是属于类所有的,区别于个别对象,可以在本类或其他类使用类名和“.”运算符调用静态成员。

 

在java语言中对静态方法有以下两点规定:

1、 在静态方法中不可以使用this关键字。

2、 在静态方法中不可以直接调用非静态方法。

 

 

对象的销毁

何种对象会被java虚拟机视为垃圾

1、 对象引用超过其作用范围,则这个对象将被视为垃圾。

2、 将对象赋值为null。

 

Java语言只支持单重继承,不支持多继承,即一个类只能有一个父类。

 

接口的定义:

Java的类文件一样,接口文件的文件名必须与接口名相同。

接口的使用,基本语法格式如下:

 

继承中的重写

重写是指父子类之间的关系,当子类继承父类中所有可能被子类访问的成员方法时,如果子类的方法名与父类额定方法名相同,那么子类就不能继承父类的方法,此时,称为子类的方法重写了父类的方法。重写体现了子类补充或者改变父类方法的能力。通过重写,可以使一个方法在不同的子类中表现出不同的行为。

 

使用super关键字

子类可以继承父类的非私有成员变量和成员方法(不是以private关键字修饰的)作为自己的成员变量和成员方法。但是,如果子类中声明的成员变量和父类的成员变量同名,则子类不能继承父类的成员变量,此时称子类的成员变量隐藏了父类的成员变量。成员方法同理。这时,如果想在子类中访问父类中被子类隐藏的成员方法或变量,就可以使用super关键字。Super关键字主要有以下两种用途。

 

 

 

多态

多态性是面向对象程序设计的重要部分。在java语言中,通常使用方法的重载和重写实现类的多态性。

重写之所以具有多态性,是因为父类的方法在子类中被重写,子类和父类的方法名称相同,但完成的功能却不一样,所以说,重写也具有多态性。

 

类的高级特性

所谓抽象类就是只声明方法的存在而不去具体实现它的类。抽象类不能被实例化,也就是不能创建其对象。语法格式如下:

 

包含一个或多个抽象方法的类必须被声明为抽象类。因为抽象方法没有定义方法的实现部分,如果不声明为抽象类,这个类将可以生成对象,这时当用户调用抽象方法时,程序就不知道如何处理了。

 

内部类

如果在一个类中在定义一个类,就将在类中在定义的哪个类成为内部类。内部类可分为成员内部类、局部内部类以及匿名内部类。

 

成员内部类

在一个类中使用内部类可以在内部类中直接存取其所在类的私有成员。语法格式如下

 

可以直接使用内部类实例化内部类对象,但由于是在主方法中实例化内部类对象,必须在new操作符之前提供一个外部类的引用。例如:

 

在实例化内部类对象时,不能再new操作符之前使用外部类名称那种形式实例化内部类对象,而是应该使用外部类的对象来创建其内部类的对象。

内部类对象会依赖于外部类对象,除非已经存在一个外部类对象,否则类中不会出现内部类对象。

 

局部内部类

局部内部类是指在类的方法中定义的内部类,它的作用范围也是在这个方法体中。

内部类可以访问当前代码块的常量以及此外部类的所有成员。

 

匿名内部类

在编写程序代码时,不一定要给内部类取一个名字,可以直接以对象名代替。匿名内部类的所有实现代码都需要在大括号之间进行编写。

匿名内部类的编写格式如下:

 

posted @ 2019-03-25 10:32  fish大叔  阅读(281)  评论(0编辑  收藏  举报