我们先说下什么是封装,在面向对象的语言中 。对象这一概念本身使用就很方便,能够让你通过对象这个概念将数据和功能(也就是方法)封装到一起。在这里出现了封装这个概念
封装就是把对象的所有方法和数据组合在一起,封装实际上就是使用一些方法把数据隐藏起来 这里的隐藏不是说把类里的数据真正的隐藏而是通过访问控制,让用户不能直接访问类中的数据,这样会提高安全性。我们可以通过构造方法来给数据初始化赋值。我们下面来看一个例子:
public class Music {
private String singer;
private String musicName;
private int time;
public Music(String singer, String musicName, int time) {
super();
this.singer = singer;
this.musicName = musicName;
this.time = time;
}
public String getSinger() {
return singer;
}
public void setSinger(String singer) {
this.singer = singer;
}
public String getMusicName() {
return musicName;
}
public void setMusicName(String musicName) {
this.musicName = musicName;
}
public int getTime() {
return time;
}
public void setTime(int time) {
this.time = time;
}
}
这是我封装好的一个音乐类 如果我们要创建一个音乐的对象并且对这个对象的数据进行操作我们以前的写法是这样的
Music music = new Music();
music.musicName = “练习”
music.time = 20;
music.singer = “刘德华“;
但是在现在这个封装好的音乐类中 我们这个写Java会报错的因为在这个类中我在成员数据中我加了一个private 这个是表示这个成员数据只能在本类中使用出了这个类就不能用了 这就是访问控制符 你也可以把方法定义成 私有的(也就是private) 这样这个方法 只能在定义这个方法的类中使用。那么我们改怎样访问数据呢 ?
我们在代码中提供了 俩个跟成员数据一一对应的方法 get() 和set()方法这俩个方法get()表示获取当前对象数据的值 set()表示对当前对象的数据进行修改和添加。
我们还提供了构造方法来对某个对象的数据进行初始化 只需要这么做就好了
Music music = new Music(”刘德华”,”练习”,20);//这是对当前music这个对象的数据进行初始化
构造方法里的数据类型和你初始化传的值必须类型一样
get()方法的使用
int time = music.getTime ();//我们通过music这个对象通过调用它的gettime方法就可以得到这个音乐对象的时间 然后这个方法会返回你个值 你需要定义一个跟这个数据类型一样的类型 来接收 这样这个值就会传递到time中
set()方法也是一样的
music.setTime (30);
这样就把这个music这个对象的time值由20改为30了
这其实就是封装 说白了就是生成一个对象 你需要给他一些属性吧 也就是数据成员的赋值
比如以new了一个人的对象 你总得给他名字吧,还得给他个身高啊 体重啊之类的吧 这其实就是封装
转载于:https://blog.51cto.com/6851750/1183891