新学期第一课

开学第一天就是专业课的学习,看到新的调用方法瞬间那种学习的冲劲来了!

今天是对Java构造方法的学习,暂时只学了这么多,明天继续更新知识点!

——————————————分割线—————————————————

知识点
1、类图
"+" 表示public修饰
"-" 表示private修饰
2、构造方法
语法:
访问修饰符 构造方法名(){}
特点:
1.没有返回值类型
2.构造方法名和类名保持一致(构造方法放在类中)
3.类中如果没有构造方法,系统会默认提供无参构造方法
3、方法重载
方法名相同,参数列表不相同,和访问修饰符,返回值类型无关
4、this关键字代表当前对象,可以本类中调用属性和方法。
this调用本类的构造方法,必须放在构造方法的第一行
5、封装
封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问
,而是通过该类提供的方法来实现对隐藏信息的操作和访问
封装步骤:
1.修改属性的访问修饰符为private(私有的,只能在本类调用)
2.给属性添加相应的get/set方法(一般为public)
3.在get/set的方法中验证数据的合法性

——————————————代码实践—————————————————

 1 package day20190225;
 2 /**
 3  * 狗类
 4  * @author Administrator
 5  *
 6  */
 7 public class Dog {
 8     /*属性*/
 9     private String name;
10     private int health;
11     private int love;
12     private String strain;
13     /*构造方法(是在创建对象时(赋值属性栏)被调用)*/
14     //构造方法名是类名
15     public Dog(){
16         System.out.println("构造对象被调用");
17     }
18     public Dog(String name,int health,int love){
19         this.name=name;
20         this.health=health;
21         this.love=love;
22     }
23     public Dog(String name,int health,int love,String strain){
24         //this 代表当前空间创建的对象(解决对象属性名重名的问题)
25         //如果去掉this,就必须要更改后面名字,但一般不改以方便后面使用可以看到name的值
26         //this只能在本类中调用对象的属性和方法
27         //堆里的对象空间是相互独立的
28         this(name,health,love);//this调用构造方法(当调用本类其他的构造方法时必须出现在构造方法的第一行)
29         /*this.name=name;
30         this.health=health;
31         this.love=love;*/
32         this.strain=strain;
33     }
34     //方法重载
35     //方法名相同,参数列表不相同,和访问修饰符、返回值类型无关
36     //减少多个方法名的使用长度
37     /*给属性提供get/set方法*/
38     public String getName(){
39         return name;
40     }
41     public void setName(String name){
42         this.name=name;
43     }
44     public int getHealth(){
45         return health;
46     }
47     public void setHealth(int health){
48         //逻辑判断数据是否合理
49         if(health>100||health<=0){
50             this.health=60;
51         }else{
52         this.health=health;
53         }
54     }
55     public int getLove(){
56         return love;
57     }
58     public void setLove(int love){
59         this.love=love;
60     }
61     public String getStrain(){
62         return strain;
63     }
64     public void setStrain(String strain){
65         this.strain=strain;
66     }
67     /*方法*/
68     public void print(){
69         System.out.println("名字:"+name+",健康值:"+health);
70     }
71 }
 1 package day20190225;
 2 public class TestDog {
 3     public static void main(String[] args) {
 4         Dog dog=new Dog();
 5 //        dog.name="旺财";
 6 //        dog.health=90;
 7         dog.setName("旺财");//通过set方法设置属性值
 8         dog.setHealth(-90);
 9         dog.print();
10         //使用构造方法快速创建对象
11         Dog dogTwo=new Dog("来福",-90,90,"中华田园犬");
12         dogTwo.print();
13     }
14 }

 ——————————————本节思维导图—————————————————

原文地址:https://www.cnblogs.com/SUN99bk/p/10430518.html