• 新学期第一课


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

    今天是对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 }

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

  • 相关阅读:
    技术每天一点点--2020.01-2020.12月
    【置顶】历史书单--程序员的文娱情怀
    【编程书籍 大系】 计算机开放电子书汇总
    Mysql基础代码(不断完善中)
    php 基础代码大全(不断完善中)
    【读书笔记】阅读美团技术团队文章《领域驱动设计在互联网业务开发中的实践》--2020.06.25 周四 端午节
    【置顶】技术每天一点点--2020.01-2020.12
    【日常】技术每天进展--2019.06.10
    【转载】Spring学习(1)——快速入门--2019.05.19
    vs创建qt dll,并使用qt控制台测试
  • 原文地址:https://www.cnblogs.com/SUN99bk/p/10430518.html
Copyright © 2020-2023  润新知