一个Person类
public class Person {
public Person() {
System.out.println("我是构造方法 1@");
}
public Person(int x) {
System.out.println("我是构造方法 2#");
}
//以下是普通方法
public int m1() {
return 3;
}
public int m1(String x) {
return 4;
}
public void m2() {
}
}
一个Test类
public class Test{
public static void main(String[] args) {
Person a1=new Person();
Person a2=new Person(5);
}
}
1-------------------------------------------------------------------------------------------------------------------------------
如代码段上所言这就是一个构造方法。没有返回类型,方法名字一定和类名保持一致。
构造方法可以有很多个,。
重名也可以,只要入参不一样就可以了,所以填了入参 int x。这个也叫重载,普通方法也一样。
2 -------------------------------------------------------------------------------------------------------------------------------
Test 中, new一个对象的时候,new后边这个 Person() 就是调用的构造方法。(a1 就是对象)
上面的构造方法一个是无参的,一个是有参的。所以Test中,我也加了一个,一个调用无参,一个调用有参。这个 5 不用在意只要跟入参的类型一致就可以。
运行结果为,我如果不填这个5则是。
3 -------------------------------------------------------------------------------------------------------------------------------
赋值:给Person中定义一个age和一个name 。(把普通方法删掉了)
public class Person {
int age; //定义age
String name; //定义name
public Person() {
System.out.println("我是构造方法 1@");
}
public Person(int x,String y) {
age=x;
name=y;
System.out.println("我是构造方法 2#");
}
@Override
public String toString() {
return "Person [age=" + age + ", name=" + name + "]";
}
}
Test
public class Test{
public static void main(String[] args) {
Person a1=new Person();
a1.age=90;
a1.name="小爱";
Person a2=new Person(5,"小花");
System.out.println(a1);
System.out.println(a2);
}
}
无参的这样赋值。
有参的这样赋值,5对应的int类型,小花对应String类型。
一般用有参的这样的构造方法赋值,更舒服一些。
运行结果为:。为什么是这个样式呢。因为 toString 方法
因为Object基类里包含此方法,所有类都继承自Object类,所以“所有对象都有这个方法”。。