本文介绍: 1.super 关键字 super 代表父类引用用于访问父类属性方法构造器2.方法重写/覆盖(override)3.多态方法对象具有多种形态。是面向对象第三特征多态是建立在封装继承基础之上的。1) 方法多态重写重载就体现多态2) 对象多态 (核心,困难,重点)4.java动态绑定机制(非常非常重要.)4.==和 equals 的对比hashCode 方法 老韩的 6 个小结: 1…

 

2.方法重写
/
覆盖
(override)

 

 

 3.多态

方法或对象具有多种形态。是面向对象的第三大特征,多态是建立在封装继承基础之上的。
1)
方法的多态 :重写重载就体现多态
2)
对象的多态
(
核心,困难,重点
)

 

4. java 的动态绑定机制(非常非常重要.)

 4.==equals 的对比

 hashCode 方法

老韩的
6
个小结
:
2)
两个引用,如果指向的是同一个对象,则哈希值肯定是一样的!
3)
两个引用,如果指向的是不同对象,则哈希值是不一样的
4)
哈希值主要根据地址号来的!, 不能完全将哈希值等价于地址
5)
案例演示
[HashCode_.java]: obj.hashCode() [
测试
A obj1 = new A(); A obj2 = new A(); A obj3 = obj1]
6)
后面在集合,中
hashCode
如果需要的话,也会重写
,
讲解集合时,老韩在说如何重写
hashCode()
toString
方法
默认返回:全类名
+@+
哈希值的十六进制,【查看
Object

toString
方法】
子类往往重写
toString
方法,用于返回对象的属性信息
2)
重写
toString
方法,打印对象或拼接对象时,都会自动调用该对象的
toString
形式
.
3)
直接输出一个对象时,
toString
方法会被默认调用
,
比如
System.out.println(monster)
; 就会默认调用 monster.toString()
finalize
方法
1)
当对象被回收时,系统自动调用该对象的
finalize
方法。子类可以重写该方法,做一些释放资源操作演示
2)
什么时候回收:当某个对象没有任何引用时,则
jvm
就认为这个对象是一个垃圾对象,就会使用垃圾回收机制
销毁该对象,在销毁该对象前,会先调用
finalize
方法。
3)
垃圾回收机制的调用,是由系统来决定
(
即有自己
GC
算法
),
可以通过
System.gc()
主动触发垃圾回收机制,测
试:
Car [name]

5.静态变量static

 

 

//1.
当方法使用了
static
修饰后,该方法就是静态方法

 

//
静态方法
,
类方法
//
类方法中不允许使用和对象有关的关键字
//
比如
this

super
。普通方法
(
成员方法
)
可以
//
类方法
(
静态方法
)
中 只能访问 静态变量 或静态方法
//
口诀
:
静态方法只能访问静态成员
.
//
普通成员方法,既可以访问 非静态成员,也可以访问静态成员
//
小结
:
非静态方法可以访问 静态成员和非静态成员

6.代码

 

 

 

 

 

 7.单例设计模式

 

//
为了能够在静态方法中,返回
gf
对象,需要将其修饰
static
//
對象,通常是重量級的對象
,
餓漢式可能造成創建了對象,但是沒有使用
.
private static GirlFriend gf = new GirlFriend(“
小红红
“);
//
如何保障我们只能创建一个
GirlFriend
对象
//
步骤
[
单例模式

饿汉
]
//1.
构造私有化
//2.
在类的内部直接创建对象
(
该对象是
static)
//3.
提供一个公共
static
方法,返回
gf
对象
private GirlFriend(String name) {
System.out.println(“
構造器被調用
.”);
this.name = name;
}
public static GirlFriend getInstance() {
return gf;
}
懒汉
//
希望在程序運行過程中,只能創建一個
Cat
對象
//1.
仍然構造器私有化
//2.
定義一個
static
靜態屬性對象
//3.
提供一個
public

static
方法,可以返回一個
Cat
對象
//4.
懶漢式,只有當用戶使用
getInstance
時,才返回
cat
對象
,
後面再次調用時,會返回上次創建的
cat
對象
//
從而保證了單例
private Cat(String name) {
System.out.println(“
構造器調用
…”);
this.name = name;
}
public static Cat getInstance() {
if(cat == null) {//
如果還沒有創建
cat
對象
cat = new Cat(“
小可愛
“);
}
}

 8.final 关键字

 

 

9. 抽象类

 

 

 

 

 

//1.
接口不能被实例
//2.
接口中所有的方法是
public
方法
,
接口抽象方法,可以不用
abstract
修饰
//3.
一个普通类实现接口
,
就必须将该接口的所有方法都实现
,
可以使用
alt+enter
解决
//4.
抽象类实现接口时,可以不实现接口抽象方法

 

//
继承
//
小结
:
子类继承了父类,就自动的拥有父类的功能
//
//
可以理解 实现接口 是 对
java
继承机制的一种补充
.

 接口的多态特性

 内部

如果定义类在局部位置
(
方法中
/
代码
) :(1)
局部内部
(2)
匿名内部
定义在成员位置
(1)
成员内部
(2)
静态内部

 

 

 

 

//1.
局部内部类是定义在外部类的局部位置
,
通常在方法
//3.
不能添加访问修饰符
,
但是可以使用
final
修饰
//4.
作用域
:
仅仅在定义它的方法或代码块中
final class Inner02 {//
局部内部
(
本质仍然是一个
)
//2.
可以直接访问外部类的所有成员,包含私有

 

public void f1() {
//5.
局部内部类可以直接访问外部类的成员,比如下面 外部类
n1

m2()
//7.
如果外部类和局部内部类的成员重名时,默认遵循就近原则,如果想访问外部类的成员,
//
使用 外部类名
.this.
成员)去访问
//
老韩解读
Outer02.this
本质就是外部类的对象
,
即哪个对象调用了
m1, Outer02.this
就是哪个对象

 

原文地址:https://blog.csdn.net/wkkofjojggkjwre/article/details/123269131

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_43442.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注