提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
目录
前言
提示:学习内部类和应用类型的方法和返回值
一、内部类
什么是内部类
内部类是指,在一个类A中,再次创建一个类B,我们将A成为外部类,将B成为内部类
内部类的分类:
成员内部类
局部内部类
匿名内部类
成员内部类:
成员内部类在位置上是指,在类中成员方法外,于成员变量属于同一等级,
格式:
class A外部类{
class B内部类{
}
}
成员内部类访问特点
统一类中的方法、变量(包括私有变量)
外部类想要调用内部类时,需要将内部类实例化,创建内部类对象
创建格式:
外部类 外部类对象名=new 外部类();
外部类.内部类 内部类对象名=外部类对象名.new 内部类对象名
(注意:外部类于内部类连接处的“点”)
成员内部类方法演示:
package 内部类;
/**
* 成员内部类即,于成员变量同一级别的内部类
*
*/
public class Dome01 {
private boolean isLive;//创建私有布尔型变量,判断是否活着
// public void setLive(boolean live) {
// this.isLive = live;
// }
class Heart{ //创建内部类心脏
public void jump() { //在内部类中创建方法
if(isLive){ //并且可以调用外部类中的私有方法
System.out.println("还在跳");
}else {
System.out.println("不跳了");
}
}
}
//创建测试类
public static void main(String[] args) {
//先将外部类实例化
Dome01 a=new Dome01();
//对布尔型变量赋值
a.isLive=true;
//将内部类实例化
//实例公式为
// 外部类名.内部类名+接收对象名=外部类对象.new 内部类名
Dome01.Heart b=a.new Heart();
b.jump();
}
}
局部内部类
定义:
局部内部类是指,在一个类的方法中创建一个类。
该类只能在此方法内部使用。
代码演示
package 内部类;
/**
* 局部内部类
* 在一个类的方法中定义的类
*
* 只能在该方法内使用局部内部类
*/
public class Dome02 {
public static void main(String[] args) {
//初始化外部类
Outer O=new Outer();
//调用外部类的方法从而调用内部类
O.show();
}
}
class Outer{//创建类
public void show(){//创建局部方法
class Inner{//在这里inner就时局部内部类
public void methord(){//局部内部类中的方法
System.out.println("innter 是在方法内的类,被称为局部内部类");
}
}
//在外部类中,使用局部内部类的方法
Inner i=new Inner();//初始化内部类,调用内部类方法
i.methord();
}
}
匿名内部类
匿名内部类中有三种使用方法
其使用标准格式为
new 父类名或者接口名(){
// 方法重写
@Override
public void method() { // 执行语句
}
};
创建内部类并使用
public static void main(String[] args) {
//直接new接口,无需写实现类来实现接口
new FlyAble(){
//直接实现方法
public void fly() {
System.out.println("我飞了~~~");
}
}.fly();
}
在方法的形参或接口时,将匿名内部类作为参数传递
public static void main(String[] args) {
FlyAble f = new FlyAble(){
//直接重写抽象方法
public void fly(){
System.out.println("我要飞,飞啊,飞,,");
}
@Override
public void fly2() {
System.out.println("我要飞,飞啊,飞,,2222");
}
};
f.fly();
f.fly2();
}
二、引用数据类型的返回值
数据类型的返回值
返回值总共有
1:基本数据类型作为返回值 关键字为int String等
2:不需要返回值 关键字为void
3:引用方法数据类型
抽象类:方法的形参上时抽象方法,但是,实际上是实现抽像方法的子类的对象,返回值也是抽象类的子类对象
接口类:方法的形参上是接口,但实际上是,接口的实现对象,返回值也是接口的实现对象。
普通类:方法的形参上是类名,但实际传递的是,类的实现对象的地址
三、权限修饰符
1、public:public的使用权限最广,任何包中,只要调用就可以使用,但是注意调用格式
import +包名+点+类名
2、protect:可以接收不同包的调用,但是,接受时,需要该类继承自被调用类
在最上方依旧要进行包的调用,之后进行类的继承
3、defort:只能接收本包内的调用,直接将所调用的类进行实例化即可使用
4、private:只有本类内部才能调用,如果想要外部类进行调用,可以创建公共的getter/setter方法
总结
提示:学习内部类,引用类型方法的参数和返回值、权限修饰符