java对象和封装,关于java的面向对象的编程特性中的封装机制

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: