Java中的内部类:
成员内部类
静态内部类
方法内部类
匿名内部类

内部类的主要作用如下:

1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类

2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据

3. 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便


-----------------------------
Jav中的继承是单继承
子类拥有父类的所有属性和方法(private修饰的无效)
实现代码复用

语法规则:
class 子类 extends 父类{

}

方法的重写:
如果子类对继承父类的方法不满意,是可以重写父类继承的方法的,当调用方法时会优先调用子类的方法。
语法规则:
a、返回值类型
b、方法名
c、参数
都要与父类继承的方法一致,才叫方法的重新。

//父类
public class Animal{
  public int age;
  public void eat()
  {
    System.out.println("Animal eat");
  }
}

//子类,可以访问父类的属性age,并且重写了父类的方法eat
public class Dog extends Animal{
  public void eat()
  {
    System.out.println("Dog eat");
  }
}

-----------------------------------------
final关键字
可以修饰类,方法,属性和变量
final修饰类,则该类不允许被继承
final修饰方法,则该方法不允许被覆盖(重写)
final修饰属性,
则属性不会进行隐形的初始化(类的初始化属性必须有值)
或在构造方法中赋值(但只能选其一)

final修饰变量,则该变量的值只能赋值一次,即为常量

------------------------------------------------
super关键字
在对象的内部使用,可以代表父类对象。
1、访问父类的属性
super.age;
2、访问父类的方法
super.eat();

super的应用
子类的构造过程当中必须调用其父类的构造方法。

如果子类的构造方法中没有显示调用父类的构造方法,则系统会默认调用父类无参的构造方法。

如果显示的调用构造方法,必须在子类的构造方法的第一行。
public Dog()
{
  super();
  System.out.println("test");
}

如果子类构造方法中既没有显示调用父类的构造方法,而父类又没有无参的构造方法,则编译出错。

如果自己定义了一个有参的构造方法,系统就不会再提供默认的无参的构造方法。
--------------------------------------------------------------
Object类
是所有类的父类,如果一个类没有使用extends明确标识继承另外一个类,那么这个类默认继承Object类。
Object类中的方法,适用所有子类。
1、toString()方法
在Object类里面toString方法返回的是对象的哈希code码(对象地址字符串)

可以通过重写toString()方法表示出对象的属性。
eclipse工具提供了方法实现子类重写toString,
菜单source -----> Generate toString 选择属性值。

2、equals()方法 (== 操作符)
Object类中的方法,比较的是对象的引用是否指向同一块内存地址。

一般情况下比较两个对象时比较他的值是否一致,所以要进行重写。

eclipse菜单source -----> Generate hashCode() and equals() 选择属性值。

posted on 2018-01-19 17:13  邶风  阅读(379)  评论(0编辑  收藏  举报