JAVA中的简单属性封装(getter和setter方法区分)

封装从何而来?

众所周知,JAVA是面向对象的一门语言,那么面向对象有三个重要的特点:封装性、继承性和多态性。
那么如何实现封装呢?这就不得不提一个关键字private了,封装是面向对象里最复杂的概念,使用private关键字实现的封装处理只是封装的第一步

为什么要封装?

我们先来理解一下封装的概念,其实就是包装,不被外部所看到或者修改,对象不能直接操作属性,有些情况下,我们并不想被外部访问我们的一些属性,这时候我们就可以把这个属性设置为私有,给属性前面加上private,外部就很难直接访问私有属性了。
例如:

private String name;
private int age;

这是将上面姓名和年龄这两个属性设置为私有属性,这样外部就很难直接访问或者修改了!

如何访问?

上面提到我们设置私有属性是不想被外部直接访问或者修改,那如果我们只想被访问但不想被修改又该如何呢?这时候我们就必须提供以下两种方法:

setter方法和getter方法
我们先来看看这两个方法的功能:

setter方法:主要用于进行属性内容的设置与修改
getter方法:主要用于属性内容的取得

当我们想要修改私有属性的内容,就可以通过外部调用setter方法传参进行修改设置
而getter方法只允许访问,不允许修改。

!!!!!注意!!!!!getter方法是没有参数的
举个例子,看一段代码:

public class Person {
	private String name;//私有属性
	private int age;//私有属性
	
	public void setName(String name){//可以通过外部传参修改姓名
		this.name=name;
	}
	
	public int getAge(){//年龄只能访问
		return age;
	}
	public void getPersonInfo(){
		System.out.println("姓名:"+name+" 年龄:"+age);
	}
}


public class Test{
	public static void main(String[] args){
		Person person=new Person();//实例化一个Person对象
		person.setName("张三");//设置姓名
		person.getAge();//获取年龄
		person.getPersonInfo();
	}
}

上面这一段代码很清楚的解释了setter方法和getter方法,可以看到我们一开始对两个属性都未设置值,姓名属性痛setter方法传参进去的,而年龄只是获取了,所以应该是默认值0;运行结果如下:

在这里插入图片描述

如果我们一开始给年龄个初值再来看看结果,将上面属性那里改为如下:

扫描二维码关注公众号,回复: 4126751 查看本文章
private String name;//私有属性
	private int age=18;//私有属性

此时结果便是如下:
在这里插入图片描述
这就更加验证了我们的getter方法只是单纯的获取属性,并不能改变。

猜你喜欢

转载自blog.csdn.net/qq_40550018/article/details/84062555
今日推荐