常用类
2023-04-12 19:41:36 16 举报
AI智能生成
思维导图
作者其他创作
大纲/内容
内部类<br>(在一个类中定义的类,称之为内部类,外面的类的叫做外部类)<br>
分类
成员内部类 <br>
特点
成员内部类中只能定义非静态属性和方法<br>
成员内部类可以访问外部类的成员,私有的可以,静态也可以<br>
语法
内部类 对象名=new 外部类().new 内部类();<br>
静态内部类<br>
特点
静态内部类可以定义属性和方法 也能定义静态属性和静态方法<br>
静态内部类只能访问外部类的静态属性和方法<br>
语法<br>
内部类 对象名= new 外部类.内部类()<br>
局部内部类<br><b>(定义在方法中)</b>
特点<br>
只能定非静态属性方法<br>
可以访问私有化 静态的 外部类成员<br>
局部内部类只能在方法中创建对象主题<br>
匿名内部类<br><b>(本身就是一个对象)</b>
语法
new Father(){具体实现 }<br>
特点<br>
内部类可以访问到外部类的私有化属性并且不破坏封装<br>
内部类也会生成.class文件 名为:外部类名$内部类名.class<br>
Object类<br>
概念
所有的类的父类 超类 基类 位于继承树的最顶端<br>
.任何一个没有显示定义extend父类 的类,都是直接继承Object 间接继承<br>
任何一个类都享有Object提供的方法<br>
Object可以代表任何一个类(多态) 可以作为方法的参数 和方法返回值<br>
Object中的常用方法
getClass<br>
返回对象的真实类型<br>
hashCode<br>
返回对象的十进制哈希码值<br>
注意:相同对象应当返回相同的哈希码值,不同对象尽量返回不同的哈希码值<br>
toString<br>
返回对象的字符串表达形式<br>全限定+@+十六进制<br>
注意:通常情况下 我们输出对象 希望看到的是里面赋值的属性 而不是全限定+@+十六进制 需要重写父类 object的 toString方法<br>
equals<br>
<b>" "字符串比较的话是地址 其实不希望比较地址 所以需要重写 equals 方法**<br><br>如果使用equals 比较对象 不希望比较地址 而是对象中的内容 也是需要重写</b><br>
重写了equals的同时也需要重写hashcode方法<br>
==和equals的区别
== 可以用于基本类型和引用类型<br>
==在基本类型的比较中,比较的值是否相等<br>
==在引用类型的比较中,比较的地址是否相等<br>
equals只能用于引用类型的比较<br>
在没有重写父类的equals方法时。比较的也是地址
finalize<br>
当垃圾回收期回收垃圾对象的时候自动调用<br>
包装类<br>
概念
为什么会有包装类?
因为基本数据类型不具有方法和属性。而引用数据类型可以拥有属性和方法,使用更加的灵活<br>
0 条评论
下一页