构造方法
特点
函数名和类名相同【开头字母大写】
不用定义返回值类型 注意:和void不一样 void根本不用写
不可以写return语句
当一个类中没有定义构造函数时,那么系统会默认给该类加入一个空参数构造函数,方便于该类进行初始化【例二】
当类中定义了构造函数,那么这个空构造函数就没有了
作用
给对象进行初始化
运行机制
构造方法和普通方法区别【例三】【例四】
构造方法:对象一建立,就会调用对应的构造函数【一出现Dog dog = new Dog();就会自动运行】,给对象初始化
一个对象建立,构造函数之运行一次
普通方法:对象调用才执行,给对象添加对象具备的功能
可以被该对象调用多次
什么时候使用构造函数
当分析事物时,该事物存在具备一些特性或者行为,那么将这些内容定义在构造函数中
代码示例
例一
1 public class Exam { 2 public static void main(String[] args) { 3 Dog dog = new Dog(); 4 } 5 } 6 7 class Dog { 8 Dog() { 9 System.out.println("123"); // 123 10 } 11 }
例二
1 public class Exam { 2 public static void main(String[] args) { 3 Dog dog = new Dog(); 4 } 5 } 6 7 class Dog { 8 //Dog(){}; //默认给一个空的构造器 9 }
例三
1 public class Exam { 2 public static void main(String[] args) { 3 Dog dog = new Dog(); // 我没有参数 4 dog.cry(); // cry 5 dog.cry(); // cry 6 dog.cry(); // cry 7 8 } 9 } 10 11 class Dog { 12 private String name; 13 private int age; 14 15 Dog() { 16 System.out.println("我没有参数"); 17 } 18 19 public void cry() { 20 System.out.println("cry"); 21 } 22 23 }
例四
1 public class Exam { 2 public static void main(String[] args) { 3 Dog dog = new Dog(); // 我没有参数 4 5 dog.setName("阿拉拉"); 6 System.out.println(dog.getName()); // 阿拉拉 7 } 8 } 9 10 class Dog { 11 private String name; 12 private int age; 13 14 Dog() { 15 System.out.println("我没有参数"); 16 17 } 18 19 public String getName() { 20 return name; 21 } 22 23 public void setName(String name) { 24 this.name = name; 25 } 26 27 public int getAge() { 28 return age; 29 } 30 31 public void setAge(int age) { 32 this.age = age; 33 } 34 35 }
构造代码块
作用
给对象进行初始化,对象一建立就运行,而且优先于构造函数执行【易考运行顺序】
构造代码块和构造函数区别
构造代码块是给所有对象进行统一初始化
构造函数是给对应的对象初始化
什么时候用构造代码块
定义的是不同对象共性的初始化内容
示例代码
1 public class Exam { 2 public static void main(String[] args) { 3 Dog dog = new Dog("ABC", 15); // 我是构造代码块 我没有参数 ABC15 4 Dog dog1 = new Dog(); // 我是构造代码块 5 } 6 } 7 8 class Dog { 9 private String name; 10 private int age; 11 12 public Dog() { 13 14 } 15 16 Dog(String name, int age) { 17 System.out.println("我没有参数"); 18 System.out.println(name + age); 19 } 20 21 { 22 System.out.println("我是构造代码块"); 23 } 24 25 }
    👣不忘初心 方得始终👣 👌WCY
                    
                
                
            
        
浙公网安备 33010602011771号