• 构造方法


    构造方法:给对象的数据进行序列化

    格式:1.方法名与类名相同

               2.没有返回值类型,没有void

               3.没有具体的返回值


    (3)构造方法的注意事项

    A:如果我们没写构造方法,系统将提供一个默认的无参构造方法

    B:如果我们给出了构造方法,系统将不再提供默认构造方法

    如果这个时候,我们要使用无参构造方法,就必须自己给出。

    推荐:永远手动自己给出无参构造方法。


    (4)给成员变量赋值的方式

    A:setXxx()

    B:带参构造方法


    (5)标准案例

     1 /*
     2  * 给成员变量赋值方法:
     3  *   1.setxx()方法
     4  *   2.构造方法
     5  * 输出成员变量方法
     6  *   1.getxx()方法
     7  *   2.调用show()方法
     8  */
     9 public class Student {
    10 
    11     private String name;
    12     
    13     private int age;
    14     
    15     //构造方法
    16     public Student(){
    17     }
    18     
    19     public Student(String name, int age){
    20         this.name = name;
    21         this.age = age;
    22     }
    23     
    24     public String getName(){
    25         return name;
    26     }
    27     
    28     public void setName(String name){
    29         this.name = name;
    30     }
    31     
    32     public int getAge(){
    33         return age;
    34         
    35     }
    36 
    37     public void setAge(int age){
    38         this.age = age;
    39     }
    40     
    41     //输出所有成员变量值
    42     public void show(){
    43         System.out.println(name + "-----" + age);
    44     }
    45 }
     1 public class Test {
     2 
     3     public static void main(String[] args) {
     4         /*
     5          * 方法一给成员变量赋值
     6          * 无参构造+setxx()
     7          */
     8         Student s1 = new Student();
     9         s1.setName("张三");
    10         s1.setAge(34);
    11         //输出值
    12         System.out.println(s1.getName() + "-------" + s1.getAge());
    13         s1.show();
    14         
    15         /*
    16          * 方法二给成员变量赋值
    17          * 
    18          */
    19         Student s2 = new Student("张三",20);
    20         System.out.println(s2.getName() + "-------" + s2.getAge());
    21         s2.show();
    22     }
    23 }



    测试:

     1 public class Student {
     2 
     3     private String name;//初始化为null
     4     
     5     private int age;//初始化为0
     6     
     7     public Student(){
     8         System.out.println("无惨构造方法");
     9     }
    10     
    11     //构造方法的重载格式
    12     public Student(String name){
    13         System.out.println("这是一个带String类型的构造方法");
    14         this.name = name;
    15     }
    16 
    17     public Student(int age){
    18         System.out.println("这是一个带int类型的构造方法");
    19         this.age = age;
    20     }
    21     
    22     public Student(String name, int age){
    23         System.out.println("这是一个带多个类型的构造方法");
    24         this.name = name;
    25         this.age = age;
    26     }
    27     
    28     public void show(){
    29         System.out.println(name + "-----" + age);
    30     }
    31 }
     1 public class Test {
     2 
     3     public static void main(String[] args) {
     4         //创建对象
     5         Student s = new Student();
     6         s.show();
     7         System.out.println("------------");
     8     
     9         //创建对象2
    10         Student s2 = new Student("张三");
    11         s2.show();
    12         System.out.println("------------");
    13     
    14         //创建对象3
    15         Student s3 = new Student(34);
    16         s3.show();
    17         System.out.println("------------");
    18     
    19         //创建对象4
    20         Student s4 = new Student("张三", 34);
    21         s4.show();
    22         System.out.println("------------");
    23     
    24     }
    25 }

     


    8:代码:Student s = new Student();做了哪些事情?

    (1)把Student.class文件加载到内存

    (2)在栈内存为s开辟空间

    (3)在堆内存为学生对象申请空间

    (4)给学生的成员变量进行默认初始化。

    (5)给学生的成员变量进行显示初始化。

    (6)通过构造方法给成员变量进行初始化。

    (7)对象构造完毕,把地址赋值给s变量

     1 public class Student {
     2 
     3     private String name;//初始化为null
     4     
     5     private int age;//初始化为0
     6     
     7     public Student(){
     8         System.out.println("构造方法");
     9     }
    10 
    11 }
     1 public class Test {
     2 
     3     public static void main(String[] args) {
     4         //创建对象
     5         Student s = new Student();
     6         
     7         System.out.println(s);
     8         /*
     9          * 构造方法
    10            cn.itcast_07.Student@15db9742
    11          */
    12     }
    13 }

     

  • 相关阅读:
    各種語系的unicode對應以及local編碼方式
    测试邮箱采集
    devexpress控件例子
    2015结束,2016开始
    MYSQL 导出表结构
    mysql 远程访问
    jQuery的选择器中的通配符[id^='code']
    jquery判断checkbox是否选中及改变checkbox状态
    MYSQL 删除重复记录,只保留最大ID
    java.lang.IllegalArgumentException: Comparison method violates its general contract!
  • 原文地址:https://www.cnblogs.com/lyywj170403/p/9367832.html
Copyright © 2020-2023  润新知