JAVA类的一些知识点

时间:2019-02-19
本文章向大家介绍JAVA类的一些知识点,主要包括JAVA类的一些知识点使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1. 某个类中的私有数据域是不能类本身之外的其他任何类访问的。哪怕继承了他的子类

 

2.关于this的用处。this放在类中,当新建一个对象时,this是指向这个对象的引用,可以用来构造方法,当局部变量和成员变量重名的时候,在方法中使用this表示成员变量以示区分;或者this表示当前对象来使用。

 

3.关键字 super 可以用于两种途径: 1 ) 调用父类的构造方法。 父类的构造方法不会被子类 继承。它们只能使用关键字 super 从子类的构造方法中调用。当类没有构造方法时,它会自动生成一个无参的隐式构造方法,子类构造方法会自动调用父类无参构造方法,但是如果一个子类有多个构造方法,且在一个构造方法调用另一个构造方法,那么该构造方法不会自动调用父类。2 ) 调用父类的方法。一般是没必要通过super调用,但是父类没有无参构造方法时,可以在子类构造方法通过super调用父类有参构造方法。或者父类重写方法里面调用。

 

4.方法重写与方法重载

方法名和形参列表共同组成方法签名

仅当实例方法是可访问时,它才能被覆盖。因为私有方法在它的类本身以外是不能 访问的,所以它不能被覆盖。如果子类中定义的方法在父类中是私有的,那么这两 个方法完全没有关系。 • 与实例方法一样,静态方法也能被继承。但是,静态方法不能被覆盖。如果父类中 定义的静态方法在子类中被重新定义,那么在父类中定义的静态方法将被隐藏。可 以使用语法:父类名 .静态方法名( SuperClassName.staticMethodName) 调用隐藏的 静态方法。

为了避免错误,可以使用一个特殊的 Java 语法,称 为 重 写 标 注( override annotation), 在子类的方法前面放一个 ©Override。

方法重写是指该方法必须使用相同的签名和相同的返回值类型在子类中定义。

方法重载意味着使用同样的名字但是不同的签名来定义多个方法。返回值是可以不相同。仅返回值类型不同的重载是不应该允许的。

 

5.对象转换和 instanceof 运算符

把父类声明变量类型(尽管实际他实际类型是个子类)显式转变为子类。

Object o = new Student(); // Implicit casting

Student b = (Student)o;// Explicit casting

在尝试转换之前确保该 对象是另一个对象的实例。这是可以利用运算符 hstanceof 来实现的。声明类型 决定了在编译时匹配哪个方法。使用 myObject.getDUmeterO 会引起一个编译错误,因为 Object 类没有 getDiameter 方法。编译器无法找到和 myObject.getDiameterC)匹配的方法。 所以,有必要将 myObject 转换成 Circle 类型,来告诉编译器 myObject 也是 Circle 的一个 实例。 为什么没有在一开始就把 myObject定义为 Circle 类型呢?为了能够进行通用程序设 计,一个好的经验是把变童定义为父类型,这样,它就可以接收任何子类型的值.

 

6.数据和方法的可见性

类用public修饰和不用public修饰,前者可以不同包内访问,后者只能同一包下访问。只要public修饰类,那么其他包的类都可以继承他,下面说明是成员访问的可见性。

类可以以两种方式使用:一种是用于创建该类的实例;另一种是通过扩展该类创建它的 子类。如果不想从类的外部使用类的成员,就把成员声明成 private。如果想让该类的用户 都能使用类的成员,就把成员声明成 public。如果想让该类的扩展者使用数据和方法,而不想让该类的用户使用,则把成员声明成 Protected。

如果在类的内部创建该类实例,该实例式可以访问private修饰的变量和方法。

 

使用 private 修饰符可以完全隐藏类的成员,这样,就不能从类外直接访问它们。不使 用修饰符就表示允许同一个包里的任何类直接访问类的成员,但是其他包中的类不可以访 问。使用 Protected 修饰符允许任何包中的子类或同一包中的类访问类的成员。使用 public 修饰符允许任意类访问类的成员。