类和面向对象编程

类和面向对象编程

static关键词(静态修饰符)

可以修饰成员变量和成员方法

可以修饰通过对象和类来调用(调用的都是同一个)

修饰成员变量表示静态变量,静态变量是所有对象公用的 在内存中只占有一份内存

修饰成员方法表示静态方法,静态方法里面只能访问静态变量

 

static特点

随着类的加载而加载

优先于对象存在

所有对象共享(可以通过对象或者类来访问)

 

main方法就是静态方法

 

使用static的地方:工具类的创建

数组工具类ArrayTool

       Arrays.fill(API中关于Arrays的其他方法)

       查找在数组中的位置

字符串工具类StringTool

       indexOf

自己手动实现

       构造方法私有化

 

静态代码块

       放在类里面,只会执行一次(加载类的时候,就执行这个类里面的静态代码块)

       Static{

}

 

继承的特点:

       Java支持单继承不支持多继承

 

继承注意事项

一、子类继承了父类里面的成员(成员变量和成员方法)

       子类不能访问父类里面的私有成员

       子类对象里面拥有父类里面的私有成员变量(只是不能直接访问)

二、继承中的“是一个”关系(人 老师 学生)

三、子类和父类里面有同名的变量,就近原则(this super)

       可以通过super访问父类里面的变量、方法和构造方法

 

继承中的构造

       通过子类的构造方法构造子类对象的时候,都会调用父类里面的构造方法

(对父类里面的属性初始化,不指定就调用默认的无参构造方法)

如果父类没有无参构造方法,要通过下面的调用指定的有参构造方法

怎么指定调用父类里面的那个构造方法

       Super(xx,xx,xx,xx);

怎么在构造方法中调用其他构造方法

This(xx,xx,x);

 

注意:通过this或者super调用构造方法的时候必须在第一条语句

 

方法重写(方法覆盖)

       子类中的方法名、参数和返回值和父类相同

意义:子类跟父类拥有同样的功能,但是子类有自己的特定的内容和特定实现方式。可以定义一个不同的名字方法,但是为了见名知意,保持父类名字,自己重新实现方法体。

重写注意事项

重写的时候,访问权限不能更低(最好保持权限一致)

 

final 可以修饰类、方法、变量

final类不能被继承

final方法:表示这个方法不能被子类重写

final变量:常量

 

Java类包(package)

通过包对类进行分类管理,也可以避免重名问题。一种类型的Java类放在一个包里面,或者一个模块的Java类放在一个包里面。不同包里面可以包含同名的类,通过包来区分。

 

内部类的种类:局部内部类、匿名内部类、静态内部类、成员内部类

 

继承和多态

 

抽象类

抽象类里面可以包含正常方法和抽象方法

抽象类可以包含构造方法,但是不能被实例化

       构造方法的作用是让子类对父类里面的数据进行初始化

抽象类的子类还可以是一个抽象类(不用实现抽象方法)

抽象类的子类(正常类)必须实现抽象类中的抽象方法

抽象类声明

       abstract class xxx{}

 

接口

接口里面只能包含抽象方法(接口是完全抽象化的类,里面没有完整的方法)

我们可以通过接口定义一个功能(其他类可以实现这个接口来拥有这个功能)用来扩展功能

接口可以被实现、也可以被具体类实现

单继承 多实现

接口定义interface

接口实现class A implements B

展开阅读全文

没有更多推荐了,返回首页