对象和封装
1.什么是类,什么是封装?
1)类:具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。
2)对象:对象是人们要进行研究的任何事物,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。
对象和类的关系:
类与对象的关系就如模具和铸件的关系,类的实力化的结果就是对象,而对对象的抽象就是类,类描述了一组有相同特性(属性)和相同行为的对象。
3)封装概念
封装:每个对象都包含有它能进行操作的所有信息,这个特性称为封装。这样的方法包含在类中,通过类的实例来实现。
4)封装的优点
1.封装还避免了命名冲突的问题,封装有隔离作用,不同的类中可以有相同名称的方法和属性,但不会混淆,也可以减少耦合(比如实现界面和逻辑分离)
2.可以让类对外接口不变,内部可以实现自由的修改
3.从安全性考虑,封装使对代码的修改更加安全和容易,封装明确的指出了哪些属性和方法是外部可以访问的
4.因为封装的类功能相对独立,因此能更好的实现代码复用
5.从设计角度来讲,封装可以对外屏蔽一些重要的信息。注意:这里的代码保护不是指代码本身的加密,而是对不想外部更改的代码通过私有实现。
狗狗类
public class Dog { String name="哈哈"; int health = 100; int love =100; String strain="二哈"; public void print(){ System.out.println("宠物的自白:\n我的名字"+this.name +",健康值是"+this.health+",和主人的亲密度是"+this.love+",我是一只"+this.strain+"。"); } }
企鹅类 public class Penguin { String name="嘿嘿"; int health = 100; int love = 100; String sex="Q仔"; public void print(){ System.out.println("宠物的自白:\n我的名字"+this.name+",健康值是"+this.health +",和主人的亲密度是"+this.love+",性别是"+this.sex+"。"); } }
测试类 public class Test { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("欢迎您来到宠物店!"); System.out.println("请输入要领养的宠物的名字:"); String name = input.next(); System.out.println("请选择要领养的的类型:(1.狗狗 2.企鹅)"); int num = input.nextInt(); switch(num){ case 1 : System.out.println("请选择狗狗的品种:(1.二哈2.金毛)"); String strain= input.next(); if(input.nextInt()==1){ strain = "二哈"; }else{ strain = "金毛"; } Dog dog=new Dog(); dog.name=name; dog.strain=strain; dog.print(); break; case 2 : System.out.println("请选择企鹅的性别:(1.Q仔 2.Q妹)"); String sex=input.next(); if(sex.equals("1")){ sex="Q仔"; }else{ sex="Q妹"; } Penguin pgn = new Penguin(); pgn.name=name; pgn.sex=sex; pgn.print(); break; } } }

浙公网安备 33010602011771号