java学习day9——Javaoop

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

目录

文章目录

前言

一、内部类

内部类的分类:

成员内部类:

格式:

 成员内部类访问特点

创建格式:

成员内部类方法演示:

 局部内部类

定义:

代码演示

 匿名内部类

二、引用数据类型的返回值

数据类型的返回值

返回值总共有

三、权限修饰符

总结



前言

提示:学习内部类和应用类型的方法和返回值

一、内部类

什么是内部类

内部类是指,在一个类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方法


总结

提示:学习内部类,引用类型方法的参数和返回值、权限修饰符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值