-
内部类的主要作用如下:
1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类
2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据
3. 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便
内部类可分为以下几种:
成员内部类
静态内部类
方法内部类
匿名内部类
查看全部 -
成员内部类的使用方法:
1、 Inner 类定义在 Outer 类的内部,相当于 Outer 类的一个成员变量的位置,Inner 类可以使用任意访问控制符,如 public 、 protected 、 private 等
2、 Inner 类中定义的 test() 方法可以直接访问 Outer 类中的数据,而不受访问控制符的影响,如直接访问 Outer 类中的私有属性a
3、 定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去 new 一个内部类对象,即:内部类 对象名 = 外部类对象.new 内部类( );
4、 编译上面的程序后,会发现产生了两个 .class 文件
其中,第二个是外部类的 .class 文件,第一个是内部类的 .class 文件,即成员内部类的 .class 文件总是这样:外部类名$内部类名.class
另外,友情提示哦:
1、 外部类是不能直接使用内部类的成员和方法滴
可先创建内部类的对象,然后通过内部类的对象来访问其成员变量和方法。
2、 如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用 this 关键字。如:
查看全部 -
1班 是 一个类class
1班的黑板擦,黑板是全局变量
1班的小明可以看做一个方法
小明自学了加法
邻座的小红就绝不知道加法,除非小红也自学加法
*故,人和人思维不能互通,方法和方法相互独立
写在1班黑板上的乘法公式
整个1班的同学(方法)都能够知道(调用)
但是2班的同学肯定不知道这个公式
*故,班级和班级之间进度教学不同,类和类相对独立
如何让2班的知道呢?
在2班的黑板上写上 1班.乘法公式
二班的同学就知道,如果需要乘法公式,就去1班黑板上看
以下代码仅供思维,非严谨可运行结构
1class{ int a = 2; int b = 3; int blackboard_1 = a * b; //三条都是黑板上的 xiaoming(){ int sum = a + b; System.out.println(sum); //我自学加法我知道! System.out.println(blackboard_1); //这题黑板上有,我知道! } xiaohong(){ System.out.println(sum); //嘛玩意? System.out.println(blackboard_1); //这题黑板上有,我知道! } }
-----------------------班级与班级的分隔墙---------------------
2class{ 2classall(){ System.out.println(blackboard_1); //啥东西? } }
在1班创建一个对象 1class blackboard_1 = new 1class
在2班黑板上写上上条代码,2班的同学就会顺着地址去1班黑板上找。
*注意,小明觉得电影是[好莱坞],小红觉得布拉德皮特是[好莱坞],虽然都叫好莱坞,但是是不同的东西。局部变量重名不重意。
*注意,如果黑板上写了小李子=莱昂纳多·迪卡普里奥,小明看了语文书觉得小李子=李白,那么对于小明来说,小李子就是李白,你得到的结果也是李白!所以人都是自私以自己为中心存在的混蛋。
*默认值什么的反之会报错,不用管哈哈
*按道理小明自学的东西肯定不能传给别的班级的人,当然聪明的秃头侠肯定有方法,本次不讲。
查看全部 -
类:类是抽象的概念,是不存在的,仅仅是个模板,比如‘手机’类,而对象是具体事物。
1:类是对象的类型
2:类是有相同属性和方法的一组对象的集合 方法:就是动作,能干什么
查看全部 -
创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();
创建普通内部类时:
内部类 对象名 = 外部类对象.new 内部类( );
查看全部 -
如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用 this 关键字
查看全部 -
this.属性: 操作当前对象的属性
this.方法: 调用当前对象的方法
查看全部 -
静态变量 啊啊啊
查看全部 -
当有指定的构造方法(无论是有参的还是无参的),都不会自动添加无参的构造方法。
查看全部 -
引用对象的属性:
对象名.属性
引用对象的方法:
对象名.方法名();
查看全部 -
成员变量和局部变量的区别
1,作用域不同
局部变量的作用域仅限于定义它的方法
成员变量的作用域在整个类内部都是可见的
2,初始值不同
Java会给成员变量一个初始值
Java不会给局部变量赋予初始值
3,在同一个方法中,不允许有同名局部变量;
在不同的方法中,可以有同名局部变量
4,两类变量同名时,局部变量具有更高的优先级
查看全部 -
大家来看看查看全部
-
提到匿名内部类实现接口
查看全部 -
类是抽象的概念,是一些属性和方法的集合,而对象使一个具体的实体,例如类的实例化
查看全部 -
Java中的this关键字 1、this关键字代表当前对象 this.属性 操作当前对象的属性 this.方法 调用当前对象的方法 2、封装对象的属性的时候,经常会使用this关键字 例子:
查看全部
举报