- 1.package com.msb2;
- 2.
- 3./**
- 4. * @Auther: msb-zhaoss
- 5. */
- 6.public class Person {
- 7. //构造器:没有任何参数的构造器我们叫做:空参构造器--》空构造器
- 8. public Person(){
- 9. /*age = 19;
- 10. name = "lili";
- 11. height = 169.5;*/
- 12. }
- 13. //属性:
- 14. String name;
- 15. int age;
- 16. double height;
- 17. //方法:
- 18. public void eat(){
- 19. System.out.println("我喜欢吃饭");
- 20. }
- 21.}
- 1.package com.msb2;
- 2.
- 3./**
- 4. * @Auther: msb-zhaoss
- 5. */
- 6.public class Test {
- 7. //这是一个main方法,是程序的入口:
- 8. public static void main(String[] args) {
- 9. //创建一个Person类的具体的对象/实例/实体:
- 10. /*
- 11. 创建对象的过程:
- 12. 1.第一次遇到Person的时候,进行类的加载(只加载一次)
- 13. 2.创建对象,为这个对象在堆中开辟空间
- 14. 3.为对象进行属性的初始化动作
- 15.
- 16. new关键字实际上是在调用一个方法,这个方法叫构造方法(构造器)
- 17. 调用构造器的时候,如果你的类中没有写构造器,那么系统会默认给你分配一个构造器,只是我们看不到罢了。
- 18. 可以自己显式 的将构造器编写出来:
- 19. 构造器的格式:
- 20. [修饰符] 构造器的名字(){
- 21.
- 22. }
- 23. 构造器和方法的区别:
- 24. 1.没有方法的返回值类型
- 25. 2.方法体内部不能有return语句
- 26. 3.构造器的名字很特殊,必须跟类名一样
- 27.
- 28. 构造器的作用:不是为了创建对象,因为在调用构造器之前,这个对象就已经创建好了,并且属性有默认的初始化的值。
- 29. 调用构造器的目的是给属性进行赋值操作的。
- 30.
- 31. 注意:我们一般不会在空构造器中进行初始化操作,因为那样的话每个对象的属性就一样了。
- 32. 实际上,我们只要保证空构造器的存在就可以了,里面的东西不用写
- 33. */
- 34. Person p = new Person();
- 35. System.out.println(p.age);
- 36. System.out.println(p.name);
- 37. System.out.println(p.height);
- 38.
- 39. Person p2 = new Person();
- 40. System.out.println(p2.age);
- 41. System.out.println(p2.name);
- 42. System.out.println(p2.height);
- 43. }
- 44.}
构造器重载
- 1.package com.msb3.msb2;
- 2./**
- 3. * @Auther: msb-zhaoss
- 4. */
- 5.public class Person {
- 6.
- 7. //属性:
- 8. String name;
- 9. int age;
- 10. double height;
- 11.
- 12. //空构造器
- 13. public Person(){
- 14.
- 15. }
- 16. public Person(String name,int age,double height){
- 17. //当形参名字和属性名字重名的时候,会出现就近原则:
- 18. //在要表示对象的属性前加上this.来修饰 ,因为this代表的就是你创建的那个对象
- 19. this.name = name;
- 20. this.age = age;
- 21. this.height = height;
- 22. }
- 23. public Person(String a,int b){
- 24. name = a;
- 25. age = b;
- 26. }
- 27.
- 28. //方法:
- 29. public void eat(){
- 30. System.out.println("我喜欢吃饭");
- 31. }
- 32.}
- 1.package com.msb3.msb2;
- 2.
- 3./**
- 4. * @Auther: msb-zhaoss
- 5. */
- 6.public class Test {
- 7. //这是一个main方法,是程序的入口:
- 8. public static void main(String[] args) {
- 9. /*
- 10. 1.一般保证空构造器的存在,空构造器中一般不会进行属性的赋值操作
- 11. 2.一般我们会重载构造器,在重载的构造器中进行属性赋值操作
- 12. 3.在重载构造器以后,假如空构造器忘写了,系统也不会给你分配默认的空构造器了,那么你要调用的话就会出错了。
- 13. 4. 当形参名字和属性名字重名的时候,会出现就近原则:
- 14. 在要表示对象的属性前加上this.来修饰 ,因为this代表的就是你创建的那个对象
- 15.
- 16. */
- 17.
- 18. Person p = new Person();
- 19. /*p.age = 19;
- 20. p.name = "lili";
- 21. p.height = 180.4;*/
- 22.
- 23. Person p2 = new Person("lili",19,180.4);
- 24. System.out.println(p2.age);
- 25. System.out.println(p2.height);
- 26. System.out.println(p2.name);
- 27.
- 28. }
- 29.}