Java里面什么是内部类、外部类、匿名内部类,构造函数等等???

Python012

Java里面什么是内部类、外部类、匿名内部类,构造函数等等???,第1张

部类:把类放在方法

外部类:正常的类

匿名内部类:顾名思义,没有名字的内部类。当程序中使用匿名内部类时,在定义匿名内部类的地方往往直接创建该类的一个对象

构造函数:构造方法的方法名必须与类名相同。构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。

Java 应用程序按值传递参数(引用类型或基本类型),其实都是传递他们的一份拷贝.而不是数据本身.(不是像 C++ 中那样对原始值进行操作。)

例1:

Java代码

//在函数中传递基本数据类型,

public class Test {

public static void change(int i, int j) {

int temp = i

i = j

j = temp

}

public static void main(String[] args) {

int a = 3

int b = 4

change(a, b)

System.out.println("a=" + a)

System.out.println("b=" + b)

}

}

结果为:

a=3

b=4

原因就是 参数中传递的是 基本类型 a 和 b 的拷贝,在函数中交换的也是那份拷贝的值 而不是数据本身

例2:

Java代码

//传的是引用数据类型

public class Test {

public static void change(int[] counts) {

counts[0] = 6

System.out.println(counts[0])

}

public static void main(String[] args) {

int[] count = { 1, 2, 3, 4, 5 }

change(count)

}

}

在方法中 传递引用数据类型int数组,实际上传递的是其引用count的拷贝,他们都指向数组对象,在方法中可以改变数组对象的内容。即:对复制的引用所调用的方法更改的是同一个对象。

匿名内部类不可以有构造器,因为匿名内部类是要扩展或实现父类或接口,所以根本无法为其构造器命名(不能用父类名,哪有在子类里给父类写构造器的说法。而子类根本没有名,更别提用子类名做构造器了)。因此在匿名内部中要想有构造器作用的部分要就应该是“初始化块”。