java对象和封装,关于java的面向对象的编程特性中的封装机制
概述
面向对象编程语言模拟客观世界。在客观世界中,成员变量隐藏在对象内部,不能被外界直接操纵和修改。封装可以认为是一道保护屏障,防止这个类的代码和数据被其他类随意访问。若要访问该类的数据,必须使用指定的方法。
适当的封装可以使代码更容易理解和维护,还可以加强代码的安全性。
原则
隐藏属性,如果需要访问某个属性,提供一个公共方法来访问它。
封装的步骤
使用private关键字来修饰成员变量。
为要访问的成员变量提供一对对应的getXxx方法和setXxx方法。
学习视频推荐:java在线教程
封装的操作—private关键字
私有的含义:
Private是权限修饰符,表示最小权限,可以修改成员变量和成员方法。由private修改的成员变量和成员方法只能在该类中访问。
private的使用格式
私有数据类型变量名;使用private来修饰一个成员变量,代码如下:
如何解决写爬虫IP受阻的问题?立即使用。
提供getXxx方法/setXxx方法来访问成员变量,代码如下:
封装优化1——this关键字
我们发现setXxx方法中的形参名不符合以名知意的规则。那么,如果修改与成员变量名一致,你知道名字的含义吗?代码如下:
修改测试后发现新问题,成员变量赋值失败。也就是说,修改了setXxx()的参数变量名后,方发并没有给成员变量赋值!这是因为参数变量的名称与成员变量的名称相同,导致成员变量名称被隐藏,方法中的变量名称无法访问成员变量,因此赋值失败。所以只能用这个关键字来解决重名的问题。
this的含义
这表示它所在的类的当前对象的引用(地址值),即对象本身的引用。
记住 :方法被哪个对象调用,方法中的this就代表那个对象。即谁在调用,this就代表谁。
this使用格式:
这个。成员变量名;公共课学生{
私有字符串名称;
私人年龄;
public void setName(字符串名){
//name=name;
this.name=name
}
公共字符串getName() {
返回名称;
}
公共无效存储(整数){
//年龄=年龄;
this.age=年龄;
}
public int getAge() {
回归年龄;
}
}提示:方法中只有一个变量名时,默认也是使用 this 修饰,可以省略不写。
封装优化2——构造方法
创建对象时,构造函数用于初始化对象,并将初始值赋给对象的成员变量。
提示:无论你与否自定义构造方法,所有的类都有构造方法,因为Java自动提供了一个无参数构造方法, 一旦自己定义了构造方法,Java自动提供的默认无参数构造方法就会失效。
方法的定义格式:
方法名与方法的类名相同。它没有返回值,所以不需要返回值类型,甚至不需要void。使用构造方法后,代码如下:
注意事项:
如果不提供构造方法,系统会给出一个无参数的构造方法。
如果提供构造方法,系统将不再提供无参数的构造方法。
无论是否定义了参数,方法都可以重载。
标准代码——JavaBean
JavaBean是用Java语言编写类的标准规范。兼容JavaBean的类要求该类是具体的和公共的,并且它有一个无参数的构造方法,提供set和get方法来操作成员变量。
写一个符合JavaBean规范的类,以学生类为例。标准代码如下:
类,代码如下:
公共类TestStudent {
公共静态void main(String[] args) {
//不使用参数构造
学生s=新生();
S.setName(柳岩);
s级(18);
system . out . println(s . getname()‐s . getage());
//与参数构造一起使用
学生s2=新生(赵,18);
system . out . println(S2 . getname()‐‐ S2 . getage());
}
}推荐相关文章教程:java语言入门以上是java面向对象3354包的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。