封装案例


案例一

1.使用面向对象的思想,设计一个用户(User)类,包括用户名、密码 、ID、用户等级、用户积分、收货地址、余额这些属性;方法包括:展示用户信息、密码修改、充值。
要求:

  1. 设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问
  2. 初始化对象时密码默认111111,余额默认0.0,等级默认1
  3. 修改密码要求长度至少为8,如无效给用户提示。
  4. 充值金额必须大于10元,如无效给用户提示。
  5. 编写测试类,测试User对象及相关方法(测试数据信息自定义)。

详细信息类

package java1;

public class Person {

     private String name;

     private int age;

     private String sex;

     private String pwd="111111";

     private int YE;



    public String getName() {
        return name;
    }

    public void setName(String name) {
        if(name.length()<6) {
            System.out.println("用户名长度不能小于6!");
        }else {
            this.name = name;
        }

    }

    public void setpwd(String pwd) {
        if(pwd.length()<8) {
            System.out.println("长度不小于8");
        }else {
            this.pwd = pwd;
            System.out.println("修改成功!");
        }

    }

    public void setYE(int YE) {
        if(YE < 10) {
            System.out.println("必须大于10元");
        }else {
            this.YE += YE;
            System.out.println("余额:"+this.YE);
        }

    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    //自定义构造
    public Person(String sex,int age,String name,String pwd,int YE) {
         this.sex = sex;
         this.age = age;
         this.name = name;
         this.pwd = pwd;
         this.YE = YE;

     }

    //实例方法或成员方法
  public void introduce(){

     System.out.println("我叫"+name+",芳龄:"+age+",性别:"+sex);


 }





}

测试类

package java1;

public class PersonTest {

    public static void main(String[] args) {
          Person p = new Person("女",20,"小红","111111",0);
          p.setName("张三");
//          System.out.println(p.getName());
          p.setpwd("11111111");
          p.setYE(15);


    }
}

案例二

  1. 请使用面向对象的思想设计描述商品信息
    要求:
    1. 分析商品类别和商品详细信息属性和方法,设计商品类别类和商品详细信息类
    2. 在商品详细信息类中通过属性描述该商品所属类别
    3. 设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问
    4. 编写测试类,测试商品类别类和商品详细信息类的对象及相关方法(测试数据信息自定)
    5. 创建包info—存放商品类别类和商品详细信息类,创建包test—存放测试类
      参考分析思路:
      商品类别类:
      属性:类别编号,类别名称
      商品详细信息类:
      属性:商品编号,商品名称,所属类别,商品数量(大于0),商品价格(大于0),
      方法:盘点的方法,描述商品信息。内容包括商品名称,商品数量,商品价格,现在商品总价以及所属类别信息
      运行效果图:

*详细信息类

package java3;

public class info {
//  商品编号,商品名称,所属类别,商品数量(大于0),商品价格(大于0)    
    private int BH;

    private String MC;

    private String LB;

    private int SL;

    private double JG;

    private double ZJ;

    public double getZJ() {
        ZJ=SL*JG;
        return ZJ;

    }




    //get和set方法
    public int getBH() {
        return BH;
    }



    public void setBH(int bH) {
        BH = bH;
    }



    public String getMC() {
        return MC;
    }



    public void setMC(String mC) {
        MC = mC;
    }



    public String getLB() {
        return LB;
    }



    public void setLB(String lB) {
        LB = lB;
    }



    public int getSL() {
        return SL;
    }



    public void setSL(int sL) {
        SL = sL;
    }



    public double getJG() {
        return JG;
    }



    public void setJG(double jG) {
        JG = jG;
    }



    public void setZJ(double zJ) {
        ZJ = zJ;
    }


    //商品数量必须大于0元
    public void SetSL(int SL) {
        if(SL < 0) {
//            System.out.println("==================================");
            this.SL += SL;
            System.out.println("商品数量必须大于0元  !  "+"("+"商品数量:"+this.SL+")");

        }else {
            this.SL += SL;
            System.out.println("商品数量:"+this.SL);
        }

    }

    //商品价格必须大于0元
    public void SetJG(double JG) {
        if(JG < 0) {
            System.out.println("库存数量异常,请联系管理员!");
            this.JG = JG;
            System.out.println("商品价格必须大于0元  !  "+"("+"商品数量:"+this.JG+")");
        }else {
            this.JG = JG;
            System.out.println("商品价格:"+this.JG);
        }
    }


//    public void SetSG(int SL,double JG) {
//    if(SL < 0 | JG < 0) {
//        System.out.println("库存数量异常,请联系管理员!");
////        this.JG = JG;
////        System.out.println("商品价格必须大于0元  !  "+"("+"商品数量:"+this.JG+")");
////        
////        this.SL += SL;
////        System.out.println("商品数量必须大于0元  !  "+"("+"商品数量:"+this.SL+")");
//    }else {
//        this.SL += SL;
//        System.out.println("商品数量:"+this.SL);
//        
//        this.JG = JG;
//        System.out.println("商品价格:"+this.JG);
//    }
//    
//}    


  //自定义构造
    public info(int BH,String MC,String LB,int SL,double JG) {
        this.BH = BH;
        this.MC = MC;
        this.LB = LB;
        this.SL = SL;
        this.JG = JG;

     }


    public void introduce() {
        System.out.println("商品名称:"+MC);
        System.out.println("商品编号:"+BH);
        System.out.println("商品数量:"+SL);
        System.out.println("商品价格"+JG);
        System.out.println("所属类别:"+LB);
        System.out.println("总价"+(ZJ=SL*JG));
    }

    public void XHX() {
        System.out.println("==================================");
    }


}

测试类

package java3;

//import java1.Person;
import java3.info;
public class test {
    public static void main(String[] args) {
        info p = new info(101, "飘柔洗发水450ml", "洗发水", 2, 15);
        p.introduce();
        p.XHX();
        p.SetJG(-12);
        p.SetSL(-2);
//        p.SetSG(0,0);
        p.introduce();





//          System.out.println(p.getName());  
    }


}

文章作者: 崔蓬勃
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 崔蓬勃 !
评论
  目录