一、 构造方法
定义:实例化对象时被自动调用
作用:构造方法分为有参构造和无参构造
( 1 )无参构造: 没有参数的构造方法
输出内容的类:
class Demo05{
publice Demo05(){
System.out.println("调用了无参的构造方法")
}
}
对象调用输出的类:
public class Demo06 {
public static void main(String[] args) {
Demo05 Demo05 = new Demo05(); //创建对象为Demo05
}
}
( 2 )有参构造:有参数的方法
作用::对属性赋值
输出内容的类:
public class Demo05 {
int age; // 成员变量的值 就是对象里的值 对象里的值优先大于成员变量的值。
String name;
public Demo05(int age){ // int a就是方法里的参数
this.age = age; // this.age = age;成员变量的值 = 方法里的值
}
public void s1(){
System.out.println("我的年龄是:"+age); // 创建方法输出age
}
}
对象调用输出的类:
public class Demo06 {
public static void main(String[] args) {
Demo05 Demo05 = new Demo05(18);
Demo05.s1();
}
}
注意:
定义构造方法时需同时满足以下三个条件:
(1)、方法名与类名相同。
(2)、在方法名的前面没有返回值类型的声明。
(3)、在方法中不能使用return语句返回一个值,但是可以单独写return语句来作为方法的结束
二、构造方法的重载
定义:每个构造方法的参数类型或参数个数不同就可实现构造方法的重载。
作用:通过调用不同的构造方法来为不同的属性进行赋值
输出内容的类
public class Demo05 {
int age;
String name;
public Demo05(int a){
age = a;
}
public void s1(){
System.out.println("我的年龄是:"+age);
}
public Demo05(String n){
name = n;
}
public void s2(){
System.out.println("我的名字是:"+name);
}
public Demo05(int a,String n){ // 两个不同类型的参数
age = a; // 分别赋值
name = n;
}
public void s3(){
System.out.println(name+"的年龄是"+age);
}
}
对象调用输出的类:
public static void main(String[] args) {
Demo05 d1= new Demo05(18);
d1.s1();
Demo05 d2= new Demo05("狂徒张三");
d2.s2();
Demo05 d3= new Demo05(50,"张三的好兄弟");
d3.s3();
}
输出结果:
我的年龄是:18
我的名字是:狂徒张三
张三的好兄弟的年龄是50
这不简简单单?