java-封装及其this 指针

java-封装及其this 指针

Java 封装


在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。

封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。

要访问该类的代码和数据,必须通过严格的接口控制。

封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。

适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

封装的优点

  • 1. 良好的封装能够减少耦合。

  • 2. 类内部的结构可以自由修改。

  • 3. 可以对成员变量进行更精确的控制。

  • 4. 隐藏信息,实现细节。

 

实现Java封装的步骤

1. 修改属性的可见性来限制对属性的访问(一般限制为private)

例如:

public class Person { private String name; private int age; }

这段代码中,将 name 和 age 属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏。

2. 对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问

public class Person{
    private String name;
    private int age;
​
    public int getAge(){
      return age;
    }
​
    public String getName(){
      return name;
    }
​
    public void setAge(int age){
      this.age = age;
    }
​
    public void setName(String name){
      this.name = name;
    }
}

一般情况下:主要用于将成员变量私有化,最好再提供对应的set(),get()方法。提高对数据访问的安全性。

 

this指针:

(1)this:代表所在类的对象的引用
方法被哪个对象调用,this就代表那个对象
(2)使用this的情况:
局部变量和成员变量重名。这时候的this.变量名,代表的是所在类的对象的引用。

不加this

/*
	创建一个类。然后
	this 指针的作用就是用来区分两个相同变量的区别
	如果不用的话,就搞的是默认值
*/

class  person{
	//一般情况下,数据变量都得用private 
	private String  name;
	private  int age;
	//一个成员变量一般情况下,有一个获取成员变量,一个得到成员变量
	public void setname(String n){
		name = n;
	}
	public String getname(){
		return name;
	}
	public void setage(int k){
		age = k;
	}
	public int getage(){
			return age;
	}
	//空参构造函数
	person (){
		
	}
	//带参构造函数,函数重载
	person (String name,int age ){
		name = name;
		age = age;
	}
	
	public void talk(){
		System.out.println(name + "," + age +"岁会说话") ;
	}
	
}
class This {
	public static void main(String[] args){
		/*person gupei = new person();
		gupei.setname("王二麻子");
		System.out.println(gupei.getname());
		gupei.setage(18);
		System.out.println(gupei.getage());
		
		*/
		person gupei = new person("王二麻子",18);
		gupei.talk();
		
	}
	
}

结果会以字符串和整型的初始化来表示,没有达到想要的效果。
 

/*
	创建一个类。然后
	this 指针的作用就是用来区分两个相同变量的区别
	如果不用的话,就搞的是默认值
*/

class  person{
	//一般情况下,数据变量都得用private 
	private String  name;
	private  int age;
	//一个成员变量一般情况下,有一个获取成员变量,一个得到成员变量
	public void setname(String n){
		name = n;
	}
	public String getname(){
		return name;
	}
	public void setage(int k){
		age = k;
	}
	public int getage(){
			return age;
	}
	//空参构造函数
	person (){
		
	}
	//带参构造函数,函数重载
	person (String name,int age ){
		this.name = name;
		this.age = age;
	}
	
	public void talk(){
		System.out.println(name + "," + age +"岁会说话") ;
	}
	
}
class This {
	public static void main(String[] args){
		/*person gupei = new person();
		gupei.setname("谷沛");
		System.out.println(gupei.getname());
		gupei.setage(18);
		System.out.println(gupei.getage());
		
		*/
		person gupei = new person("谷沛",18);
		gupei.talk();
		
	}
	
}

这样就达到了初始化的目的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/114847.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 迁移数据库数据到SQL Server 2017

    迁移数据库数据到SQL Server 2017

    2021年11月26日
    39
  • 2016年四川省TI杯电子设计竞赛B题

    2016年四川省TI杯电子设计竞赛B题B题:自动循迹小车1.任务设计制作一个自动循迹小车。小车采用一片TI公司LDC1314或LDC1000电感数字转换器作为循迹传感器,在规定的平面跑道自动按顺时针方向循迹前进。跑道的标识为一根直径0.6~0.9mm的细铁丝,按照图1的示意尺寸,用透明胶带将其贴在跑道上。图中所有圆弧的半径均为为20cm±2cm。图1跑道示意图2.要求(1)在图1小车所在的直线区任意指定一

    2022年6月7日
    31
  • oracle中拼接字符串_oracle 连接字符串

    oracle中拼接字符串_oracle 连接字符串1.listagg   该方法拼接后是varchar2类型,有最大长度限制,在OracleDatabase中,VARCHAR2字段类型,最大值为4000;PL/SQL中VARCHAR2变量类型,最大字节长度为32767。   适用场景:当要拼接的字符较少时使用。select’select’||col||’from’||table_name||’;’…

    2022年9月20日
    2
  • flvjs api 中文[通俗易懂]

    flvjs api 中文[通俗易懂]flvjs.createPlayer()functioncreatePlayer(mediaDataSource:MediaDataSource,config?:Config):Player;MediaDataSource Field Type Description type string Indicatesmediatype,’flv’or’mp4′ isLive? boolean Indic…

    2025年8月23日
    2
  • CWnd的派生类-3、CDialog类

    CWnd的派生类-3、CDialog类

    2021年8月11日
    70
  • 【C语言】求最小公倍数和最大公约数(辗转相除法)

    【C语言】求最小公倍数和最大公约数(辗转相除法)用到的名词:最小公倍数,最大公约数,辗转相除法一、名词解释:1).最小公倍数:最小公倍数(LeastCommonMultiple,LCM),如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数,对于两个整数来说,指该两数共有倍数中最小的一个。计算最小公倍数时,通常会借助最大公约数来辅助计算。 最小公倍数=两数的乘积/最大公约(因)数,解题时要避免和最大公约(因)…

    2022年5月17日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号