java语言面向对象之封装特性,在给大家介绍封装特性之前我要先给大家说一下java语言的类和对象:
类:它是一个对象的集合,它是对象的抽象,他主要用于描述一组对象的行为和共同特征,比如说,有一个抽象的学生类,他们的共同特征是同时具有以下信息:学号、姓名、年龄、班级,所以我们定义他们的共同特征(成员变量)用来描述对象的特征:
private String stuNumber;
private String stuName;
private int stuAge;
private String stuClass;
他们的共同行为:学习、吃饭、休息,所以我们可以给他们定义以上行为(方法)用来描述对象的行为:
public void StuStudy(){
//这里是学习方法
}
public void StuEat(){
//这里是吃饭方法
}
public void StuSleep(){
//这里是休息方法
}
这里其中的stuNumber/sutName/stuAge/stuClass,就是这个类的成员变量
其中的StuStudy()/StuEat()/StuSleep(),就只这个类的成员方法
以上大家应该都不会陌生,这就是简单的定义了一个类,然后写了变量和方法,但是和我们接下来要说的就很相近了
说完了类,我们再来说一下对象,相信大家在刚开始学习java语言的时候都有遇到过这一段代码:
import java.util.Scanner;
//导包
public class test{
public void main(String[] args){
Scanner sc = new Scanner(System.in);
int age = sc.nextInt();
System.out.print("Your Age is" + age);
}
}
上面的代码,我们获取了键盘上的输入,然后输出了他,大家仔细看一看,这里其实我们new了一个Scanner对象sc,然后用这个对象sc调用了他的成员方法:nextInt();这里的sc就是一个对象;
说完了对象和类,就可以进入正题,浅谈java语言封装特性,大家在看上面几段代码的时候可能会疑问,private是干什么用的?这里给大家介绍一下java语言中用来修饰一个变量的几个关键字先:
public:公有的,被他修饰的变量或者方法,在类外也可以访问到,
private:私有的,被他修饰的变量或者方法,只能在当前类访问得到(继承也不能访问到)
protect:受保护的,被他修饰的变量或者方法,只能在被继承后的子类中访问得到
我们此处用的就是private关键字修饰了我们的学生的共同特征(成员变量),在java封装中,一般的成员变量都是用private关键字修饰,用来保护我们的数据不能被其他类修改,那么,我们已经设置了不能被修改,我们想修改的时候怎么办呢?我们就只能通过一些被public修饰的方法来修改被private修饰的成员变量,比如说getXXX/setXXX方法,具体实施如下:
(默默打开了我的eclipse,我不想敲了,然后这个网页上写的格式也不对,难受)
class StudentList {
//定义了一个学生类,私有化了他的成员变量
private String stuName;
private int stuAge;
private String stuClass;
//使用public关键字修饰了他的get/set方法
//通过这些方法来访问StudentList类中被私有化的成员变量
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public int getStuAge() {
return stuAge;
}
public void setStuAge(int stuAge) {
this.stuAge = stuAge;
}
public String getStuClass() {
return stuClass;
}
public void setStuClass(String stuClass) {
this.stuClass = stuClass;
}
}
class StudentList {//定义了一个学生类,私有化了他的成员变量private String stuName;private int stuAge;private String stuClass;//使用public关键字修饰了他的get/set方法//通过这些方法来访问StudentList类中被私有化的成员变量
好的到这里我们已经定义好了一个学生的类,用来描述学生的特征,然后我们可以通过get/set方法来访问他的私有化变量;
下面跟大家讲述一下怎么来实例化对象,在一个抽象的类中实例化一个存在的学生:
class Test{
public static void main(String[] args) {
StudentList stu1 = new StudentList();
stu1.setStuName("stu1");
stu1.setStuAge(19);
stu1.setStuClass("sof2");
}
}
通过new关键字,我们实例化了一个对象,然后通过set方法设置了该对象的属性,如果要输出则使用以下代码:
System.out.print("stuName" + stu1.getStuName + ",stuAge" + stu1.getStuAge + ",stuClass:" + stu1.getStuClass);
//使用该对象的get方法访问到该对象的数据;
我们在set获取的时候也可以设置一些东西:比如说年龄是否合法什么的,这些就不多说了,很简单,这个时候我们几乎已经介绍完了封装特性的所有,其实就是一些简单的语法,但是下面说的才是对于封装的正经的话:
java封装特性可以让我们在实际开发的时候变得简单,无论是什么,我们找到他们的共同特征,给他们抽象出一种共有的特征,抽象出他们的共有行为,放到一个类中,然后我们就可以在使用他的时候直接实现他的特征,调用他的行为方法,用来描述一个对象的特征和行为,同时java封装特性也为我们开发提供了很多方便,比如说,我们在开发的时候,某一个类有很多的属性或者行为,难不成要把这些东西全部写到参数列表吗?其实不然,我们可以将其封装,之后参数列表就只有一个对象,我们在方法中再去通过该对象的方法访问该对象的信息,所以在实际开发中,封装特性会让一切变得简单;
封装暂时就到这里,学习编程语言是一个漫长的过程,没有谁是可以一蹴而就的,希望无论将来这条路有多么艰难,渴望技术的朋友都可以继续勇往直前走下去,保持自己的初心,如果一切都那么容易了,怎么配得上高薪呢?