黑马程序员————面向对象(day10)
2013-09-12 21:07
281 查看
-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------
第十天 Object类,内部类,匿名内部类
1. Object类
在java中,有一个老大,皇帝
任何一个类,都是Object的子类
任何一个类,都直接,或者间接继承自Object类
Object类有构造方法吗?构造方法第一行是super()
2. Object类中的方法
toString();
toString(),返回此对象的字符串表现形式
覆盖toString()建立我们自己的字符串表现形式
返回本对象中成员属性
hashCode()方法
返回int
22608339 @ 158f9d3
原来我们看到的这个十六进制,是被转换后的哈希值
哈希值,不是地址值
程序员参考的,配合后期集合使用 Hashtable
equals()方法 *****
java工程师(Oracle)认为,任何对象都具备比较性
Object类,定义类一个比较对象的功能,equals()方法
equals()方法是所有对象都具备的,可以使用这个方法,进行对象之间的比较
equals()方法的原始代码
public boolean equals(Object obj){
return (this == obj);
}
覆盖equals方法,建立对象自己的比较形式,没有必须要比较地址值
面试题:== equals的区别
1. == 比较运算符 equals是Object定义的方法
2. == 在基本数据类型中,比较的是基本数据类型的具体数值
== 在引用数据类型中,比较的是对象的地址值 p == p1
3. equals方法,Object类的方法,比较对象的地址值
覆盖equals方法,建立对象自己独特的比较形式
日后开发。equals方法就是一个规范,只要我们调用对象的equals方法,就是在做对象之间的比较
怎么比较,由equals方法中进行定义
3. 内部类,类中类,嵌套类
在一个类的内部,还有另外的一个类
内部类,可以直接使用外部类成员,包括私有
但是,如果外部类,要使用内部类中成员,必须要建立内部类的对象
4. 内部类的访问格式
访问的是内部类方法,内部类,和内部类的方法,非静态
外部类名.内部类名 变量 = new 外部类对象().new 内部类对象();
变量.内部类方法名();
访问内部类的方法,内部类,和内部类的方法,都是静态
外部类名.内部类名.内部类方法名();
访问内部类的方法,内部类是静态的,内部类的方法,非静态
外部类名.内部类名 变量 = new 外部类名.内部类对象();
变量.内部类方法名();
局部内部类,访问局部变量,局部变量被final修饰
原因在于生命周期:
如果局部方法出栈局部变量,肯定也消失了,如果被final修饰
变量成了常量,存储在方法区的常量池中,生命最长
此时如果局部方法出栈,但是局部的内部类依然还有对象的引用的话
是可以访问,局部变量的,因为局部变量的生命大于了对象的生命
5. 匿名内部类--记住格式 AWT(图形化界面)会用
匿名内部类,有一个前提,必须继承或者是实现一个接口
接口名 变量 = new 接口名(){
覆盖抽象方法
};
变量.方法名();
6. 模板方法设计模式
统计什么代码,先期不确定,不知道统计的是什么,但是明确一点,统计的代码不变
统计的内容发生了变化
将变化的内容,对外暴露出去,延迟到子类实现
先期做什么事情,我不清楚全部,但是清楚一部分内容
如果出现这样的情况,将不清楚的部分,对外暴露出去,由子类的延迟实现
这样解决问题的方式,模板方法设计模式
7. 多态的案例,数据库的模拟操作
利用多态的技术,实现数据库的瞬间转换
java程序,不直接操作数据库,通过一个接口的形式,来实现功能
数据库的功能有4个,增删改查
-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------
第十天 Object类,内部类,匿名内部类
1. Object类
在java中,有一个老大,皇帝
任何一个类,都是Object的子类
任何一个类,都直接,或者间接继承自Object类
Object类有构造方法吗?构造方法第一行是super()
2. Object类中的方法
toString();
toString(),返回此对象的字符串表现形式
覆盖toString()建立我们自己的字符串表现形式
返回本对象中成员属性
hashCode()方法
返回int
22608339 @ 158f9d3
原来我们看到的这个十六进制,是被转换后的哈希值
哈希值,不是地址值
程序员参考的,配合后期集合使用 Hashtable
equals()方法 *****
java工程师(Oracle)认为,任何对象都具备比较性
Object类,定义类一个比较对象的功能,equals()方法
equals()方法是所有对象都具备的,可以使用这个方法,进行对象之间的比较
equals()方法的原始代码
public boolean equals(Object obj){
return (this == obj);
}
覆盖equals方法,建立对象自己的比较形式,没有必须要比较地址值
面试题:== equals的区别
1. == 比较运算符 equals是Object定义的方法
2. == 在基本数据类型中,比较的是基本数据类型的具体数值
== 在引用数据类型中,比较的是对象的地址值 p == p1
3. equals方法,Object类的方法,比较对象的地址值
覆盖equals方法,建立对象自己独特的比较形式
日后开发。equals方法就是一个规范,只要我们调用对象的equals方法,就是在做对象之间的比较
怎么比较,由equals方法中进行定义
3. 内部类,类中类,嵌套类
在一个类的内部,还有另外的一个类
内部类,可以直接使用外部类成员,包括私有
但是,如果外部类,要使用内部类中成员,必须要建立内部类的对象
4. 内部类的访问格式
访问的是内部类方法,内部类,和内部类的方法,非静态
外部类名.内部类名 变量 = new 外部类对象().new 内部类对象();
变量.内部类方法名();
访问内部类的方法,内部类,和内部类的方法,都是静态
外部类名.内部类名.内部类方法名();
访问内部类的方法,内部类是静态的,内部类的方法,非静态
外部类名.内部类名 变量 = new 外部类名.内部类对象();
变量.内部类方法名();
局部内部类,访问局部变量,局部变量被final修饰
原因在于生命周期:
如果局部方法出栈局部变量,肯定也消失了,如果被final修饰
变量成了常量,存储在方法区的常量池中,生命最长
此时如果局部方法出栈,但是局部的内部类依然还有对象的引用的话
是可以访问,局部变量的,因为局部变量的生命大于了对象的生命
5. 匿名内部类--记住格式 AWT(图形化界面)会用
匿名内部类,有一个前提,必须继承或者是实现一个接口
接口名 变量 = new 接口名(){
覆盖抽象方法
};
变量.方法名();
6. 模板方法设计模式
统计什么代码,先期不确定,不知道统计的是什么,但是明确一点,统计的代码不变
统计的内容发生了变化
将变化的内容,对外暴露出去,延迟到子类实现
先期做什么事情,我不清楚全部,但是清楚一部分内容
如果出现这样的情况,将不清楚的部分,对外暴露出去,由子类的延迟实现
这样解决问题的方式,模板方法设计模式
7. 多态的案例,数据库的模拟操作
利用多态的技术,实现数据库的瞬间转换
java程序,不直接操作数据库,通过一个接口的形式,来实现功能
数据库的功能有4个,增删改查
-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------
相关文章推荐
- 黑马程序员_day10 面向对象(异常的处理,导包,jar包)。
- 黑马程序员-day10-面向对象(异常)
- 黑马程序员-day10-面向对象(包package)
- 黑马程序员——Java基础---面向对象
- 黑马程序员-----面向对象
- 黑马程序员——面向对象(1)
- 黑马程序员-面向对象(构造函数、构造代码块、静态代码块)
- 6、黑马程序员-OC面向对象—多态
- 黑马程序员--面向对象的设计原则--java学习日记5(扩展知识)
- 黑马程序员-java面向对象的一些问题
- 黑马程序员————OC面向对象_类和对象(下)
- 9.黑马程序员-面向对象
- 黑马程序员--Java基础总结--面向对象
- 黑马程序员——Java 面向对象_多态
- 黑马程序员----[20150428][面向对象4]
- 黑马程序员-java基础加强_面向对象
- 黑马程序员--Java基础之面向对象(2)
- 黑马程序员——面向对象_基础(2)
- 黑马程序员—java基础_面向对象3
- 黑马程序员 Java 面向对象