Java面向对象高级Ⅲ

内部类

成员内部类

类中类,类的五大成分之一(成员变量,方法,构造器,内部类,代码块)

public class Xxx{
   public class Ccc{
   }
}

四种形式:成员内部类、静态内部类、局部内部类、匿名内部类

成员内部类:类中的普通成员

无static修饰,属于外部类的对象持有

外部类名.内部类名 对象名=new 外部类名().new 内部类名();

成员内部类的实例方法中,可以直接访问外部类的静态成员,可以直接访问外部类的实例成员

静态内部类

有static修饰的内部类,属于外部类自己持有 

public class Outer{
     public static class Inner{
     }
}

外部类名.内部类 对象名=new 外部类名.静态内部类();

静态内部类中,可以直接访问外部类的静态成员

静态内部类中,不可以直接访问外部类的实例成员(没有外部类对象 ,可以间接访问)

局部内部类

在方法中,代码块中,构造器等局部范围里的类

匿名内部类

匿名内部类本质是一个子类,同时会立即创建一个子类对象

匿名内部类的名称,当前类名&编号

new 类或接口(参数值...){
        类体(一般是方法重写)
}

通常作为一个对象参数传输给方法使用,看实际开发需要,不会主动用

简化代码

接口不能有对象,

枚举

是一种特殊类

修饰符 enum 枚举类名{
     名称1,名称2,...;     
(这些名称,本质是常量,每个常量都会记住枚举的一个对象)
     其他成员...
}

构造器都是私有的,对外不能创建对象,

是最终类,不能被继承

从第二行开始,可以定义类的其各类成员

继承:java.lang.Enum类的,从enum类也会继承到一些方法

values方法是用来拿到枚举类的全部对象,放到一个数组中去返回

应用场景

用来表示一组信息,然后作为参数进行传输

常量做信息标准和分类,参数值不受约束

枚举做信息标准和分类,参数值受到约束,最好的信息标志和分类的理想方案

Math.floor(number);//向下取整
Math.ceil(number);//向上取整
Math.round(number);//四舍五入

泛型

定义类、接口、方法时,同时声明了一个或者多个类型变量,称为泛型类、泛型接口、泛型方法,统称泛型

修饰符 class 类名<类型变量,类型变量,...>{
    ...
}
public class ArrayList<E>{
    ...  
}

类型变量建议用大写字母,常用:E、T、K、V

提供了在编译阶段约束所能操作的数据类型,并自动进行检查的能力,这样可以避免强制类型转换,及其可能出现的异常

本质:把具体的数据类型作为参数传给类型变量

泛型接口

实现类在实现它的时候都可以申明要操作的类型

泛型方法、泛型通配符、上下限

public static <T> void test(T t){
}

通配符:是?,可以在使用泛型的时候代表一切类型,E\T\K\V是定义时使用

上限必须是*或者*的子类

下限必须是*或者*的父类

泛型的擦除问题和注意事项

泛型是工作在编译阶段的,一旦程序编译成class文件,class文件中就不存在泛型了

泛型不能直接支持基本数据类型,只能支持对象类型(引用数据类型)

常用API:应用程序编程接口

Object类

Java中所有类的祖宗类

System.out.println(s1.toString);=System.out.println(s1);//toString可以不写,默认返回对象的地址形式,意义为了让子类重写,以便自己制定比较规则 
equals意义:默认比较两个对象的地址是否相等。让此类重写,以便用于比较对象的内容是否相同。。

Objects

是一个工具类,提供了很多操作对象的静态方法给我们使用

包装类

把基本类型的数据包装成对象

自动装箱机制:基本类型的数据可以直接编程对象赋值给包装类。Integer it3=12;

自动拆箱机制:包装类的对象可以直接赋值给基本数据类型。int it4=it3;

功能一:包装类可以把基本类型的数据转换成字符串

int a1 = 12;
String rs = Integer.toString(a1);

功能二:把字符串数据转换成基本数据类型

String ageStr="23";
int age = Integer.parseInt(ageStr);/int age = Integer.valueOf(ageStr);
System.out.println(age+1);//24

泛型和集合都不支持基本数据类型,so包装类在集合和泛型中大量使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值