第三章面向对象(上)
1.面向对象的概念和特性
1)概念
2)特性
2.类与对象
1)概念
2)类的定义
3.对象的创造与使用
4.类的设计
5.类的封装
5.构造方法的定义
6.构造方法的重载
7.this关键字
8.垃圾回收机制
9.静态变量
10.静态方法
11.静态代码块
12.成员内部类![](https://i-blog.csdnimg.cn/blog_migrate/f0b9b8f6fae9dd3ce4ff0394e1042f47.png)
第四章面向对象(下)
1.继承的概念![](https://i-blog.csdnimg.cn/blog_migrate/7a53cb217db060408dd62db0afb58b15.png)
继承extends
关键字extends的使用方法如下:
class Child extends Parent { }
2.方法的重写
重写父类方法
3.super关键字![](https://i-blog.csdnimg.cn/blog_migrate/5b7bcd2d44d94b4ab5020daf625dc1f7.png)
4.final关键字
1)final修饰变量-不可以被修改(常量)
2)final修饰方法-不可以被重写
3)final修饰类-不可以不可以被继承
创建Dad爸爸类,给Dad类定义一个打开电视机的方法,该方法使用final关键字修饰。创建Dad类的子类Baby类,让Baby类尝试自己重写打开电视的方法。
本实例在运行之前,Eclipse就会报出如下图所示的错误。因为打开电视这个方法是由final修饰的,子类无法重写。所以Baby想要打开电视,就只能找爸爸来打开了。
5.抽象类![](https://i-blog.csdnimg.cn/blog_migrate/32e0af1900af1c378156c539398ebdbe.png)
6.接口
接口:所有方法都是抽象方法
修饰符 interface 接口名{}
Java语言每个类可以实现多个接口
实现implements
修饰符 class 类名 implements 接口1,接口2,......{}
instanceof 接口名 判断对象是否属于该接口的实现类
如果接口有很多抽象方法,类中重写了几个方法报错后应该把类改为抽象类或把剩下的方法改为抽象方法
7.多态的概念
![](https://i-blog.csdnimg.cn/blog_migrate/75fde3f8bcce7c2ff0bcad8b5d8bca02.png)
8.对象的类型转换![](https://i-blog.csdnimg.cn/blog_migrate/e9a758bd68d4bd3ee3ccf44b58d5d572.png)
9.Object类
1)Object类的介绍
在java中所有的类都直接或间接继承了Java.lang.Object类。Object类是比较特殊的类,它是所有类的父类,是Java类层中的最高层类。用户创建一个类时,除非已经指定要从其他类继承,否则它就是从Java.lang.Object类继承而来的。Object类中的getClass()、notify()、notifyAll()、wait()等方法不能被重写,因为这些方法被定义为final类型。
2)getClass()方法
getClass()方法是Object类定义的方法,它会返回对象执行时的 Class 实例,然后使用此实例调用 getNameO方法可以取得类的名称。语法如下:
getClass()getname();
可以将getClass()方法与toString()方法联合使用。
3)toString()方法
toString()方法的功能是将一个对象返回为字符串形式,它会返回一个 String实例。在实际的应用中通常重写toString0)方法,为对象提供一个特定的输出模式。当这个类转换为字符串或与字符串连接时,将自动调用重写的toString()方法。
方法的重写:
返回参数相同 方法名相同 传入参数相同 {方法体不同}
重写的toString()方法
运行结果
4) equals()方法
在java语言中,有两种比较对象的方式,分别为“==”运算符与equals()方法。两者的区别在于:“==”比较的是两个对象引用内存地址是否相等,而equals()方法比较的是两个对象的实际内容。
运行结果
10.匿名内部类
匿名类只是在创建对象时才会编写类体的一种写法,匿名类的特点是“现写现用”,其语法如下
new 父类/父接口{
子类实现的内容
};
练习
运行结果
使用匿名内部类应该遵循以下原则:
(1)匿名类不能写构造方法。
(2)匿名类不能定义静态的成员。
(3)如果匿名类创建的对象没有赋值给任何引用变量,会导致该对象用完一次就会被Java虚拟机销毁。