⑴ java构造函数中调用构造函数的问题
不是,因为你初始化(即new)的时候调用的是无参构造函数,所以先调用的是无参构造函数,只不过你在无参构造函数中有调用了有参构造函数(即this(1)),所以当无参构造函数还没有执行到System.out.println("3
Default!!");时,有参构造函数先执行了System.out.println("3
NotDefault!!");所以在输出是会出现“3
NotDefault!!”在"3
Default!!"之前的情况.
⑵ Java中什么叫构造函数.
每创建一个类的实例都去初始化它的所有变量是乏味的。如果一个对象在被创建时就完成了所有的初始工作,将是简单的和简洁的。因此,Java在类里提供了一个特殊的成员函数,叫做构造函数(Constructor)。
一个构造函数是对象被创建时初始对象的成员函数。它具有和它所在的类完全一样的名字。一旦定义好一个构造函数,创建对象时就会自动调用它。构造函数没有返回类型,即使是void类型也没有。这是因为一个类的构造函数的返回值的类型就是这个类本身。构造函数的任务是初始化一个对象的内部状态,所以用new操作符创建一个实例后,立刻就会得到一个清楚、可用的对象。
构造方法是一种特殊的方法,具有以下特点。
(1)构造方法的方法名必须与类名相同。
(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。
(4)构造方法不能由编程人员调用,而要系统调用。
(5)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。
(6)构造方法可以重载,以参数的个数,类型,或排列顺序区分。
⑶ java 匿名内部类有没有构造函数
因为匿名内部类没有类名(至轮弊少是李判明面上没有),不然为何叫匿名? 构造器是要有类名哪桐改的。 不过有种方式可以起到构造器的作用,但有局限性,那就是“构造代码块”
⑷ 关于java构造函数
class
Student{
String
name;
int
age
;
public
Student(String
name
,int
age){
this.name
=
name
;
this.age
=
age
;
//这里的Student()就是构造函数。。它必须与类名一样而且不能加返回值
}
}
⑸ java的匿名函数怎么用
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的拷贝,他们都指向数组对象,在方法中可以改变数组对象的内容。即:对复制的引用所调用的方法更改的是同一个对象。