Java第六天

一般情况下java中的类不能用static修饰,唯一可以修饰的是内部类

内部类的特点:

1.内部类可以直接访问外部类中的成员

2.外部类要访问内部类,必须建立内部类的对象

一般用于类的设计

分析事物时,发现该事物描述中还有事物,而且这个事物还在访问被描述的事物的内容。这时就是还有的事物定义成内部类来描述。

如果内部类中定义了静态成员,那么该内部类也必须是静态的。

为什么内部类能直接访问外部类的成员呢?

那是因为内部类持有了外部类的引用。 外部类名.this

内部类可以存放在局部位置上。

内部类在局部位置上只能访问局部中被final修饰的局部变量。

匿名内部类。就是内部类的简写格式。

前提:内部类必须继承或者实现一个外部类或者接口,其实就是一个匿名子类对象。

格式:new 父类or接口(){子类内容}.调用

代码实现:

 1 class Demo2
 2 {
 3     public static void main(String[] args)
 4     {
 5         Outer1 o=new Outer1();
 6         o.method();
 7     }
 8 }
 9
10 abstract class Father//父类
11 {
12     abstract void show();
13 }
14 class Outer1
15 {
16     int num=10;
17     void method()
18     {
19         new Father()//匿名内部类
20         {
21             void show()
22             {
23                 System.out.println("SHOW......"+num);
24             }
25         }.show();
26     }
27 }

通常的使用场景之一:

当函数参数是接口类型时,而且接口中的方法不超过3个,可以用匿名内部类作为实际参数进行传递

代码实现:

 1 interface Inter
 2 {
 3     void show1();
 4     void show2();
 5 }
 6
 7 class Demo3
 8 {
 9     public static void main(String[] args)
10     {
11         int num=20;
12         show(new Inter(){
13             public void show1()
14             {
15                 System.out.println("show111111.........."+num);
16             }
17             public void show2()
18             {
19                 System.out.println("show222222.........."+num);
20             }
21         });
22     }
23     public static void show(Inter in)
24     {
25         in.show1();
26         in.show2();
27     }
28 }

java中创建对象是构造函数,构造代码块,父类构造函数之间的调用顺序:

时间: 2024-08-24 20:43:35

Java第六天的相关文章

再回首Java第六天

方法的所属性 方法不能独立存在,必须定义在类里面.方法逻辑上要么属于类,要么属于对象. static修饰的方法属于类,没有static修饰的方法属于对象. 同一个类中一个方法调用另一个方法,如果被调方法是成员方法,则默认使用this作为主调者,如果被调用方法是静态方法则默认使用类作为主调者. 方法所属性主要体现在下面三个方面: 方法不能定义,只能定义在类体里面 从逻辑上方法要么属于类,要么属于对象 永远不能独立执行方法,执行方法必须使用类或对象来作为调用者

复习java基础第六天(IO)

一:File 类 • 输入:读取外部数据(磁盘.光盘等存储设备的数据)到程序(内存)中. • 输出:将程序(内存)数据输出到磁盘.光盘等存储设备中 • Java 的 IO 流主要包括输入.输出两种 IO 流,每种输入.输出流有可分为字节流和字符流两大类: – 字节流以字节为单位来处理输入.输出操作 – 字符流以字符为单位来处理输入.输出操作 注意:输入.输出是以程序为参照. • File 类代表与平台无关的文件和目录. • File  能新建.删除.重命名文件和目录,但 File 不能访问文件内

Java基础学习第六天

回顾 -------------------------------- class:类成员 构造函数:和类同名,无返回值.可以重载 第一条语句  this()(调自身)  或 super()(调超类构造)  默认是super(),超类无空构造 要super中要指定构造函数的参数. 成员变量:修饰符 private public final 成员函数 静态成员:跟类有关,存在方法区 静态代码块:  类加载时执行 构造代码块:{}  在创建对象时执行,每创建一个对象执行一次 抽象类:用abstrac

Java基础--第六天

1:函数 (1)定义在类中,有特定功能的一段小程序. (2)函数的格式: 修饰符 返回值类型 函数名(形参类型 形式参数1,形参类型 形式参数2...) { 函数体; reutrn 返回值; } 1 /* 2 函数定义: 3 黑屏运行时,按任意键就可以退出: 4 也可以使用exit命令退出 5 函数的调用: 6 单独调用--无返回值 7 赋值调用--常用,返回值 8 输出调用--演示 9 函数的结束: 10 函数其实是以return结束: 11 函数执行完全,void类型函数默认,最后一行有re

java学习第六天

目标 1.  块 2.  GC(了解) 3.  package import 4.  封装 一.块 {}  分类 1.普通块 作用: 组织代码.解决变量的作用域.节约了内存. 在同一个作用域内,不能声明同名的变量. 2.静态块  : static {} 使用类时,才会加载,仅加载一次 执行的结果为: 3.构造块: {} 先于构造器执行,每创建一个对象执行一次. 二.GC Garbage collection  垃圾回收机制 1.程序员无权调用垃圾回收器. 2.程序员可以通过System.gc()

Java自学笔记(第六天)

(*)static(不变的)-关键字:修饰的变量叫做类变量,随着类的加载而加载,随着类的消失而消失, //static修饰的成员叫做静态成员(不变的成员,类成员), //不仅能被对象调用,还可以直接被类名调用 //被所有对象共享 //优先于对象存在 (*)类变量和实例变量的区别: //存放位置不同,类变量在方法区中和实例变量在堆内存中 //生命周期不同,类变量与类同在,实例变量与实例同在 (*)static使用注意事项: //static成员只能访问static成员,非static成员可以访问s

Java进阶学习第六天——DOM4J入门

文档版本 开发工具 测试平台 工程名字 日期 作者 备注 V1.0 2016.04.17 lutianfei none XML约束--schema XML Schema 也是一种用于定义和描述 XML 文档结构与内容的模式语言,其出现是为了克服 DTD 的局限性. schema和DTD的对比(面试题): Schema符合XML语法结构. DOM.SAX等XML API很容易解析出XML Schema文档中的内容. XML Schema对名称空间支持得非常好. XML Schema比XML DTD

Java基础学习第六天——二维数组与面向对象入门

文档版本 开发工具 测试平台 工程名字 日期 作者 备注 V1.0 2016.02.25 lutianfei none 二维数组 格式1(动态初始化) 格式:数据类型[][] 变量名 = new 数据类型[m][n]; m表示这个二维数组有多少个一维数组 n表示每一个一维数组的元素个数 举例: int[][] arr = new int[3][2]; 定义了一个二维数组arr 这个二维数组有3个一维数组,名称是arr[0],arr[1],arr[2] 每个一维数组有2个元素,可以通过arr[m]

第六天java基础多态和适配器

1,使用抽象类和接口实现适配器模式设计.涉及的类和接口分别为ButtonListener(接口), 其中含有click() / dbclick() / keyUp() / keyDown()等方法. ButtonAdapter(按钮适配器类),适配器中对非click()方法进行默认实现. Button类中添加addListener(ButtonListener l)方法. //按钮监听器接口 interface ButtonListener { public void onClick(); //