面向对象03——封装
一、封装的概念
1.封装的定义
封装的实质就是将类的状态信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
是成员变量私有化,进而提高代码的安全性。使用封装可降低代码的耦合度,即关联性。
2.步骤:
(1)成员变量私有化,
(2)对外提供的setter/getter方法
(3)提供构造器(构造方法)
例:
public class Game {
//利用private使成员变量私有化
private int id; //游戏编号
private String name; //游戏名
private String type; //游戏类型
//对外提供setter/getter方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
//提供构造器(构造方法)
public Game() { //无参构造
}
public Game(int id, String name, String type) { //有参构造
this.id = id;
this.name = name;
this.type = type;
}
}
二、包的概述
申明包关键字:package
导入包关键字:import
包的使用步骤:
1.新建包(package 包名)
2.将定义好的类分别放入不同的包中
3.导入包(import )
三、访问修饰符

四、static关键字
1.用static关键字修饰属性
用static修饰的属性称为静态变量或者是类变量,没有static修饰的属性称为实例变量
使用static修饰的属性不依赖于任何对象,用类名直接加“ . ”调用即可。
1.1实现步骤:
(1)创建Person类的对象
(2)分别调用name, gender和age属性
(3)用static修饰的属性采用类名加“ . ”的方法调用。
例:
public Person{
public String name;
public String gender;
public int age;
public static int PERSON_LIVE=1; //static修饰人的生命,表示只有一次
//已省略具体代码
}
//以上为Person类定义代码,下面为调用代码
//已省略具体代码
Person person1=new Person();
Person1.name="张三";
Person1.gender="男";
Person1.age=20;
public static int PERSON_LIVE=1;
//已省略具体代码
在使用static时,通常与final关键字同时使用,使该常量在程序运行时都不会改变
如:"static final int PERSON_LIVE=1;" PERSON_LIVE=1,的值等于1,且不会更改。
注:1.常量名一般由全大写字母组成
2.声明常亮是一定要赋初始值
2.用static关键字修饰方法
用static修饰的方法称为静态方法或者是类方法,没有static修饰的属性称为实例方法
使用static修饰的方法不依赖于任何对象,用类名直接加“ . ”调用即可。
步骤:
(1)创建Person类
(2)用static修饰的showDetails()方法采用类名加“ . ”的方法调用
例:
public Person{
public String name;
public String gender;
public int age;
public static void showDetails(){
System.out.println("姓名是:"+name+",性别为:"+gender+",年龄是:"+age)
}
//以上为Person定义为类代码,下面即方法调用
public class Person Test{
public static void main(String[] args ){
Person person1=new Person();
Person.showDetails(“张三”,“男”,23); //调用静态方法,初始化
}
}
注:1.在静态方法中不能直接访问实例变量和实例方法
2.在实例方法中可以直接调用类中定义的静态变量和静态方法
浙公网安备 33010602011771号