zoukankan      html  css  js  c++  java
  • 体验Java的封装性

     1 package com.cnblogs.java;
     2 //体验Java的封装性
     3 /*
     4  * 如下的人类年龄赋值-300岁,显然很不合理,这种直接对类的属性赋值,有时候虽然不合理但却会编译通过。
     5  * 所以我们考虑不让对象直接操作属性,而是通过对象调用方法来对属性赋值,在方法中我们就可以进一步限制
     6  * 赋值的大小问题。
     7  * 解决办法:将类的属性私有化,通过共有的方法来调用修改类的属性。(在方法中限制修改的值)
     8  */
     9 public class TestPerson {
    10     public static void main(String[] args) {
    11         Person p=new Person();
    12 //        p.name="康师傅";
    13 //        p.age=-300;
    14         p.setName("小明");
    15         p.setAge(12);
    16         //这种编译通过却不合理的赋值方法要避免
    17         
    18         p.info();
    19     }
    20 }
    21 class Person{
    22     private String name;//将属性私有化,避免对象直接调用属性。
    23     private int age;
    24     public void info(){
    25         System.out.println("人的名字是:"+name+" 年龄是:"+age);
    26     }
    27     public String getName(){//获得名字
    28         return name;
    29     }
    30     public int getAge(){//获得年龄
    31         return age;
    32     }
    33     public void setName(String n){
    34         if(n.length()>0 && n.length()<8){
    35             name=n;
    36         }else{
    37             System.out.println("请输入一个简短的名字!");
    38         }
    39     }
    40     public void setAge(int a){
    41         if(a>0 && a<130){
    42             age=a;
    43         }else{
    44             System.out.println("这不是一个人能达到的年龄!");
    45         }
    46     }
    47 }

    运行结果:

    人的名字是:小明 年龄是:12

  • 相关阅读:
    hdu 2044 一只小蜜蜂
    HDU 2041 超级楼梯
    卡特兰数
    hdu 1267 下沙的沙子有几粒?(二维递推题)
    大数加法、乘法
    学习时仪式感太强是不是不太好
    php记日志
    cygwin安装apt-cyg
    存储过程死循环之后的清理
    linux的计划任务crontab
  • 原文地址:https://www.cnblogs.com/yunqing/p/4780430.html
Copyright © 2011-2022 走看看