首页 > 编程语言 > 详细

Java的内部类与常用类

时间:2020-12-20 13:14:04      阅读:34      评论:0      收藏:0      [点我收藏+]

内部类

1. 概念:在一个类内再定义一个完整的类。

2. 特点:①编译后可以生成独立的字节码文件。②内部类可直接访问外部类的私有成员,而不破坏封装性。③可为外部类提供必要的内部功能条件。

3. 内部类:

3.1 成员内部类:
  • 在类的内部定义,与实例变量、实例方法同级别的类。

  • 外部类的一个实例部分,创建内部类对象时,必须依赖外部类对象。

    * Outer out = new Outer();
    * Inner in = out.Inner();
    
  • 当外部类、内部类存在重名属性时,会优先访问内部类属性

    * 要调用外部类属性需:Outer.this.name
    
  • 成员内部类不能定义静态成员,但可以包含静态常量。

3.2 静态内部类:
  • 不依赖外部类对象,可以直接创建或通过类名访问,可声明静态成员,级别与外部类一样。
  • 只能直接访问外部类的静态成员
3.3 局部内部类:
  • 定义在外部类方法中,作用范围和创建对象仅限于当前方法内。
  • 不能加任何访问修饰符
  • 局部内部类访问外部类当前方法中的局部变量时,因无法保障变量的生命周期与自身相同,变量必须修饰为final。
3.3 匿名内部类:
  • 没有类名的局部内部类
  • 必须继承一个父类或者实现一个接口
  • 定义类、实现类、创建对象的语法合并,只能创建一个该类的对象
  • 优点:减少代码量;缺点:可读性差;

常用类:

1.Object类:
  • 称为超类/基类,所有类的直接或间接父类,为继承树的最顶层
  • 任何类,如果没有书写extends显示继承某个类,都默认直接继承Object,否则为间接继承
  • Object类中所定义的方法是所有对象都具备的方法
  • Object类型存储任何对象
常用方法 特点 应用
getClass方法 public final Class<?> getClass(){} 返回引用中存储的实际对象类型 通常用于判断两个引用中实际存储对象类型是否一致
hashCode方法 public int hashCode(){} 返回该对象的哈希码值:哈希值根据对象的地址或字符串或数字使用hash算法计算出来的int类型的数值 一般情况下相同对象返回相同的哈希码
toString方法 public String toString(){} 返回该对象的字符串表示:可以根据此程序需求覆盖该方法 通常将其重写获取参数
equals方法 public boolean equals(Object obj){} 默认实现为(this == obj),比较两个对象地址是否相同 可以进行覆盖【步骤:比较两个引用是否指向同一个对象-->判断obj是否为null-->判断两个引用指向的实际对象类型是否一致-->强制类型转换-->依次比较各个属性值是否相同】,比较两个对象的内容是否相同
finalize方法 1.当对象被判定为垃圾对象时,由JVM自动调用此方法,用于标记垃圾对象进入回收队列;2.垃圾对象:没有有效引入指向此对象时为垃圾对象;3.垃圾回收:由GC销毁垃圾对象释放数据存储空间;4.自动回收机制:JVM内存耗尽一次性回收所有垃圾对象;5.手动回收机制:使用System.gc();通知JVM执行垃圾回收
2.包装类:
  • 即基本数据类型所对应的引用数据类型

  • 类型转换与装箱【基本类型转换成引用类型】、拆箱【引用类型转换成基本类型】
    技术分享图片

  • 基本类型和字符串之间的转换
    技术分享图片

  • Integer整数缓冲区:-128~127,超出范围自动创建新空间

3.String类:
  • 字符串是常量,创建之后不可改变;字符串字面值存储在字符串池中可以共享。
  • String类常用方法
方法名 作用 使用方法
length() 返回字符串的长度
charAt(int index) 返回某个位置的字符
contains(String str) 判断是否包含某个字符串
toCharArray() 将字符串转换成数组
indexOf(String str) 查找str首次出现的下标,存在则返回下标;不存在则返回-1
lastIndexOf(String str) 查找字符串在当前字符串中最后一次出现的下标索引
trim() 去掉字符串前后的空格
toUpperCase() 将小写转为大写
endWith(String str) 判断字符串是否以str结尾
replace(char oldChar,char newChar) 将旧字符串换成新字符串
split(String str) 根据str做拆分
  • 可变字符串:
类名 功能
StringBuffer 可变长字符串,jdk1.0提供,运行效率慢、线程安全
String Builder 可变长字符串 ,jdk5.0提供,运行效率快、线程不安全
4.BigDecimal类:
  • 大的浮点数的精确计算
    技术分享图片

  • 使用方法:
    技术分享图片

5.Date类:
  • Date表示特定的瞬间,精确到毫秒,但现大部分已被Calendar类中的方法所取代。
  • 常用方法:
    技术分享图片
6.Calendar类:

技术分享图片

7.SimpleDateFormat类:

技术分享图片

8.System类:

技术分享图片

Java的内部类与常用类

原文:https://www.cnblogs.com/lldblog-1/p/14153215.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!