zoukankan      html  css  js  c++  java
  • Lesson_6_2 上课笔记 一条鱼

    Lesson_6_2

    2013-01-16

    面向对象基础(2)----封装

      1 /***********************************************************
      2 *                       Lesson_6_2
      3 *
      4 *                     面向对象基础(2)--封装
      5 *                        一条鱼
      6 *
      7 *                       13-01-16
      8 *                   note by CocoonFan
      9 ************************************************************
     10 ************************************************************
     11 *
     12 * 一、面向对象优点
     13 *   1、便于程序模拟现实世界中的实体(类实现)
     14 *   2、隐藏细节
     15 *       对象的行为和属性被封装在类的里面,外界不需要关注内部
     16 *       的实现细节。
     17 *   3、可重用:通过类的模板,创建多个类的对象
     18 *
     19 * 二、成员运算符
     20 *   对象名.成员名
     21 *
     22 * 三、访问权限public和private
     23 *    一般成员变量为 private, 方法为 public 
     24 *
     25 * 四、访问私有程艳变量
     26 *   1、在类的里面定义一个公有的方法去访问私有的成员
     27 *   2、通过构造方法设置
     28 *
     29 * 五、类的实例化
     30 * 六、构造方法(2) -- 给属性初始化
     31 * 七、this指针 -- this指向调用它对象
     32 *     1、每一个成员方法都隐含的调用this
     33 *
     34 ************************************************************/
     35 
     36 public class Lesson_6_2{
     37     public static void main(String []args){
     38         Fish fish = new Fish();//这里实例化对象
     39 
     40         fish.setSex("鱼妖");
     41         System.out.println("鱼的性别是:" + fish.getSex());
     42 
     43         fish.setSex("女");
     44         System.out.println("鱼的性别是:" + fish.getSex());
     45 
     46         fish.setKind("美人鱼");
     47         fish.swimming();
     48         System.out.println("鱼的重量是:" + fish.getWeight());
     49 
     50         //当有多个变量要初始化的时候常采用构造方法初始化
     51         Fish whale = new Fish("女","座头鲸", 10000.0f);
     52         System.out.println("鱼的类型是:" + whale.getKind());
     53         System.out.println("鱼的性别是:" + whale.getSex());
     54         System.out.println("鱼的重量是:" + whale.getWeight());
     55         whale.swimming();
     56 
     57         //匿名对象
     58         //下面两个对象是两个不同的对象 
     59         new Fish();
     60         new Fish();
     61 
     62     }
     63 }
     64 
     65 
     66 class Fish{
     67     private String sex = "不知道"; //这里也可以设置初始值
     68     private String kind;           //不赋值默认为null
     69     private float weight = 0.1f;
     70 
     71     /*构造方法:
     72         1、如果没有写构造方法,JVM会自动的创建一个没有参数的空的构造方法即:
     73             public Fish(){}
     74         2、如果定义了带有参数的构造方法,则JVM不会创建空的不带参数的构造方法
     75         3、如果有多个构造方法,遵循参数匹配原则
     76         4、每个对象在创建的时候一定会调用构造方法,其作用是在内存中划分一块空间
     77         5、每个对象的构造方法只能被调用一次
     78     */
     79     public Fish(){
     80         this.sex = "鱼妖你妹";
     81     }
     82     public Fish(String sex, String kind, float weight){
     83         this.sex = sex;
     84         this.kind = kind;
     85         this.weight = weight;
     86     }
     87 
     88     //注意get和set的命名规范 "java bean"
     89     //设置鱼的性别
     90     public void setSex(String sex){
     91         if(!sex.equals("男") && !sex.equals("女")){
     92             System.out.println("设置性别错误,只能是男或者女");
     93         }else{
     94             this.sex = sex;
     95         }
     96     }
     97 
     98     //获取鱼的性别
     99     public String getSex(){
    100         /*if(sex.equals("男") || sex.equals("女")){
    101             return sex;
    102         }else{
    103             return "还没有设置鱼的性别呢!!";
    104         }*/
    105         return sex;
    106     }
    107 
    108     //设置鱼的种类
    109     public void setKind(String kind){
    110         this.kind = kind;
    111     }
    112 
    113     //获取鱼的种类
    114     public String getKind(){
    115         return kind;
    116     }
    117 
    118     //设置鱼的重量
    119     public void setWeight(float weight){
    120         if(weight < 0){
    121             System.out.println("书籍错误:范围在0~N");
    122         }else{
    123             this.weight = weight;
    124         }
    125     }
    126 
    127     //获取鱼的重量
    128     public float getWeight(){
    129         return weight;
    130     }
    131 
    132     //鱼在游泳
    133     public void swimming(){//设置过名字就显示名字
    134         if(this.kind.equals(null)){
    135             System.out.println("鱼正在水里面游泳···");
    136         }else{
    137             System.out.println(this.kind + "正在水里面游泳···");
    138         }
    139     }
    140 }

     运行结果

  • 相关阅读:
    Openstack-Mitaka Ceilometer 部署心得
    Openstack-Mitaka Keystone 部署心得
    IO模型学习笔记
    TCP-IP协议学习笔记
    大规模分类问题作业报告
    RabbitMQ安装笔记
    5.7.8.framebuffer驱动框架分析3
    5.7.7.framebuffer驱动框架分析2
    5.7.6.framebuffer驱动框架分析1
    5.7.5.framebuffer驱动框架总览
  • 原文地址:https://www.cnblogs.com/CocoonFan/p/2863429.html
Copyright © 2011-2022 走看看