Java基础:Day11笔记内容 (内部类、权限修饰符 )
来源:互联网 发布:魔法王座 知乎 编辑:程序博客网 时间:2024/05/17 21:06
1.内部类
写在类里面的类, 好处是可以访问外部类中的所有成员.
特点:
1、外部类要访问内部类的成员,必须创建对象。
2、内部类可以直接访问外部类的成员,包括私有(private)
内部类的分类
成员内部类: 内部类定义在外部类的成员位置。
局部内部类: 内部类定义在方法体内。
成员内部类
1.通过外部类的方法,创建内部类对象使用.
2.通过第三方类直接使用,成员内部类
格式: Outer.Inner in2 = new Outer().new Inner();
示例
class Student {
int age;
}
class Outer { //外部类
//成员位置,类中方法外
class Inner { //成员内部类
public void show() {
System.out.println(“Inner show()”);
}
}
//1.通过外部类的方法,创建内部类对象使用.
public void method() {
Inner in = new Inner();
in.show();
}
}
class InnerDemo3 {
public static void main(String[] args) {
Outer.Inner in2 = new Outer().new Inner();
in2.show();
}
}
运行结果
局部内部类: 一个类在另一个类的方法里
示例
class Outer {
public void show() {
int i = 10;//局部变量
class Inner {//局部内部类
public void test() {
System.out.println(“Inner test”);
}
}
Inner in = new Inner();
in.test();
}
public void method() {
//System.out.println(“i = ” + i);//java:21: 错误: 找不到符号
//Inner in = new Inner();//java:22: 错误: 找不到符号
}
}
class LocalInnerDemo {
public static void main(String[] args) {
Outer o = new Outer();
//o.method();
//使用局部内部类
o.show();//Inner test
}
}
运行结果
匿名内部类: 没有名字的内部类.
前提:存在一个类或者接口
格式:new 类名或者接口名() {重写方法};
本质:子类对象
示例
interface Jumpping {
public abstract void jump();//跳
}
class NiMingDemo {
public static void main(String[] args) {
//格式:new 类名或者接口名() {重写方法};
//匿名内部类:子类对象
new Jumpping() {
public void jump() {
System.out.println(“Jumpping!!!”);
}
}.jump();//创建了一个接口的实现类对象,这个对象没有名字,所以叫匿名对象
}
}
运行结果
匿名内部类的方法调用
1.通过匿名内部类的格式本身调用
2.多态调用
示例
interface Jumpping {
public abstract void jump(); //跳
}
class NiMingDemo2 {
public static void main(String[] args) {
//匿名内部类:子类对象
//调用方式1
new Jumpping() {
public void jump() {
System.out.println(“Jumpping!!!”);
}
}.jump();
//方式2 接口多态
Jumpping jp = new Jumpping() { //接口多态
public void jump() {//重写接口中的方法
System.out.println(“Jumpping!!!”);
}
public void test() {//子类特有方法
System.out.println(“子类特有的test()”);
}
};
jp.jump();
jp.jump();
//调用子类特有, 多态不能访问子类特有
//jp.test();//No java:42: 错误: 找不到符号
System.out.println(“—————————–”);
new Jumpping() { //接口多态
//重写接口中的方法
public void jump() {
System.out.println(“Jumpping!!!”);
}
//子类特有方法
public void test() {
System.out.println(“子类特有的test()”);
}
}.test();//ok
}
}
运行结果
定义包的格式:
package 包名;
多级包用.分开即可: package 包名1.包名2.包名3
多级包喜欢用倒置的域名, 例如:www.baidu.com: com.baidu.项目名.模块名
写在类外面
注意事项:
package语句必须是程序的第一条可执行的代码
package语句在一个java文件中只能有一个
如果没有package,就是在一个默认包下
示例
package cn.itcast;
//package cn.sina;
class PackageDemo {
public static void main(String[] args) {
System.out.println(“Hello World!”);
}
}
2.权限修饰符 (掌握)
本类 本包 外包的子类 外包的无关类
private(私有) YES
默认(啥也不写) YES YES
protected(保护) YES YES YES
public(公开) YES YES YES YES
部分笔记内容,整个笔记一共27天,打包下载:
网盘地址——链接:http://pan.baidu.com/s/1c1iem6c 密码:8lj8
- Java基础:Day11笔记内容 (内部类、权限修饰符 )
- Java学习笔记(七)--权限修饰符 内部类
- JAVA基础复习十-权限修饰符、匿名内部类
- JAVA-7-形参及返回值、权限及内容修饰符、内部类(重点是匿名内部类)
- Java基础学习笔记10——(形参和返回值,包,导包,权限修饰符,常见修饰符,内部类)
- java基础(十)形式参数和返回值/链式编程/包/权限修饰符/内部类
- Java基础进阶_day04_(static,代码块,final,包与权限修饰符,内部类)
- 面对对象-权限修饰符、内部类
- Java基础第五天--内部类,包,修饰符
- java基础之修饰符和内部类
- Java基础(八) Java修饰符及接口详解之(二) 内部类
- Java基础day11笔记
- java内部类及修饰符
- Java封装(修饰符+包+内部类)
- java内部类的修饰符
- import、内部类 day11
- 黑马程序员——包、权限修饰符、内部类
- 第十天:包,权限修饰符和内部类
- ios socket第三方框架 AsyncSocket使用简介,连接,心跳,断线,数据发送与接收
- HDU 5620 KK's Steel(简单的推理题)
- Collection View 动画
- iOS原生API生成二维码(CIFilter)
- Linux环境PHP7.0安装
- Java基础:Day11笔记内容 (内部类、权限修饰符 )
- 大型网站架构技术一览
- Handler内存溢出解决方案
- git使用中遇到的换行符问题总结
- 根据客户端文件路径及服务器保存路径上传文件
- runtime选择器和消息转发处理
- 在C 函数中保存状态:registry、reference和upvalues
- iOS 9 学习系列: UIStack View
- Oracle DML和DDL锁的解决方法