新学期第一课
开学第一天就是专业课的学习,看到新的调用方法瞬间那种学习的冲劲来了!
今天是对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 }
——————————————本节思维导图—————————————————
原创文章版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。转载文章详情请查看转载链接