封装性是java面向对象的特征之一;
三大特性之一,封装性;
-
封装是一个面向对象的术语,其含义其实很简单,就是把东西包装起来。
-
面向对象的思想,我的理解是面向结果,即不关心事件发生的过程,如炒菜步骤:洗菜—炒菜—出锅。但在面向对象思想里面只关注出锅的成品。而封装就符合这个思想,把一个项目的各个步骤的大体框架列出来,然后填充框架,不关心这一步你是怎么执行的,比如排序,你用选择也好,快排也好,不管白猫黑猫只要抓住老鼠都是好猫。只关心结果。
-
这样可以是使代码更具有条理性,逻辑性。
-
同时因为代码每部分都模块话更容易进行调试,修改,更加灵活。
-
可以隐藏内部细节,只对外提供公共访问方式,提高了安全性。
package day14;
import java.util.Scanner;
public class GameTest {
public static void main(String[] args) {
//1.玩游戏,创建游戏对象
Game g=new Game();
//2.得到英雄对象
Hero h=getHero();
//3.运行方法
g.play(h);
}
private static Hero getHero(){
Hero h;
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要创建的英雄类型");
System.out.println("请输入你要创建的英雄昵称,血量,基础攻击力");
String k=sc.next();
//字符串比较只能用 equals 和 compareto
if(k.equals("AGI")) {
h=new AigHero(sc.next(),sc.nextInt(),sc.nextInt());
}else if(k.equals("INT")) {
h=new IntHero(sc.next(),sc.nextInt(),sc.nextInt());
}else {
h=new PowerHero(sc.next(),sc.nextInt(),sc.nextInt());
}
return h;
}
}