• Java(13) 抽象和封装


    一、简述从现实世界中抽象出类的步骤

      第一:找出分类(分析出类)
      第二:找出类的特征(分析类的相关属性)
      第三:找出类的行为(分析类的方法)

    二、常量(经常出现的变量值)

    2.1 语法:

      public static final 数据类型 常量名 = 常量值;
    注意:1.final最终的,修饰的变量不能被修改
        2.变量名的所有字母都大写,多个单词用下划线(_)分割,
    例如:public static final String SEX_MALE ="Q仔";
    常量的访问式:类名.常量名

    示例:

     1 public class Example1 {
     2     String name = "无名氏";//昵称
     3     int health =100;//健康值
     4     int love = 0;//亲密度
     5     public static final String SEX_MALE= "雌";
     6     public static final String SEX_FEMALE = "雄";
     7     String sex  = SEX_MALE;//性别
     8     public void ji(){
     9         System.out.println("宠物的自白:
    我的名字叫"+this.name+",健康值是"+this.health
    10                 +",和主人的亲密度是"+this.love+",我是一只"+this.sex+"。");
    11     }
    12 }
    企鹅类
     1 public class Text1 {
     2     public static void main(String[] args){
     3         Example4 qi = new Example4();
     4         System.out.println("第一个企鹅的性别是:"+qi.sex);
     5         qi = new Example4();
     6         qi.sex =qi.SEX_FEMALE;
     7         System.out.println("第二个企鹅的性别是:"+qi.sex);
     8         qi = new Example4();
     9         qi.sex =qi.SEX_MALE;
    10         System.out.println("第三个企鹅的性别是:"+qi.sex);
    11     }
    12 }
    测试类

    运行结果为:

    三.构造方法(特殊方法,用来创建对象,初始化值)

    3.1 语法:

    public 类名( 参数列表){
      //方法体
    }
      a.使用
        类名 对象名 = new 构造方法名(参数);
        Dog d = new Dog();
      b.与一般方法的区别
        1,构造方法没有返回值类型;
        2,构造方法的方法名就是类名,一般方法可以任意取
             3,构造方法调用:new 构造方法名(参数);
        一般方法调用:对象名.方法名(参数);
      c.构造方法的作用
        1,创建方法对象
        2,初始化值(属性值);
    注意:当你没有写构造函数时,java会提供默认的无参构造函数
    例如:public Dog(){
       }

    示例2:

     1 public class Example2{
     2         String name = "无名氏";//昵称
     3         int health =100;//健康值
     4         int love = 0;//亲密度
     5         String sex  = "Q仔";//性别
     6         public Example6(){
     7             name = "楠楠";
     8             love =20;
     9             sex = "Q妹";
    10             System.out.println("执行构造方法");
    11         }
    12         public void ji(){
    13             System.out.println("宠物的自白:
    我的名字叫"+this.name+",健康值是"+this.health
    14                     +",和主人的亲密度是"+this.love+",我是一只"+this.sex+"。");
    15         }
    16         public static void main(String[] args){
    17             Example6 qi = null;
    18             qi = new Example6();
    19             qi.ji();
    20         }
    21 }
    无参构造方法

    运行结果为:

    四、方法重载

       方法名一样,参数列表不一样
    注意:重载与返回值了类型和访问修饰符无关

     1 public class Example8 {
     2     String name = "无名氏";//昵称
     3     int health =100;//健康值
     4     int love = 0;//亲密度
     5     String sex  = "Q仔";//性别
     6     public Example8(){
     7         name = "楠楠";
     8         love =20;
     9         sex = "Q妹";
    10         System.out.println("执行构造方法");
    11     }
    12     //两个参数的构造方法
    13     public Example8(String name,String sex){
    14         this.name = name;
    15         this.sex = sex;
    16     }
    17     public Example8(String name,int health,int love,String sex){
    18         this.name = name;
    19         this.health= health;
    20         this.love = love;
    21         this.sex = sex;
    22     }
    23     public void ji(){
    24         System.out.println("宠物的自白:
    我的名字叫"+this.name+",健康值是"+this.health
    25                 +",和主人的亲密度是"+this.love+",我是一只"+this.sex+"。");
    26     }
    27     public static void main(String[] args){
    28         Example8 qi = null;
    29         qi = new Example8();
    30         qi.ji();
    31         qi = new Example8("丫丫","企鹅");
    32         qi.ji();
    33         qi = new Example8("妹妹",80,20,"Q仔");
    34         qi.ji();
    35     }
    36 }
    方法重载

     运行结果为:

    六、封装

    6.1 作用:隐藏类不实现细节;
    6.2 步骤:

      1.采用了private修饰符的变量不能在类外部访问,而通过public修饰的set和get方法访问
      2.在set方法中编写相应存取控制语句可以避免出现不符合实际需求的赋值
        将属性均设为private权限,这样的属性只在类内可见,
        用public权限的ste方法和get方法实现对属性的存取。
        在set方法中对输入的属性值的范围进行判断,简单说,指定某一事物的值并要进行判断的时候用set
    6.3 this关键词
         this:表示当前对象
         调用属性:this.属性名
        调用方法:this.方法名();
        this():表示调用构造函数。
    注意:this(),必需写在构造函数的第一行。

     

  • 相关阅读:
    python加速包numba并行计算多线程
    idea Exception in thread "http-apr-8080-exec-2" java.lang.OutOfMemoryError: PermGen space
    centos6.5 导入matplotlib报错 No module named '_tkinter
    pythonTensorFlow实现yolov3训练自己的目标检测探测自定义数据集
    ajax post请求json数据在spring-controller解析
    python keras YOLOv3实现目标检测
    mybatis 插入语句name no find
    python调用百度语音识别接口实时识别
    idea ssm框架搭建
    OpenCVSSDpython目标探测对象检测
  • 原文地址:https://www.cnblogs.com/-chaoming/p/7019558.html
Copyright © 2020-2023  润新知