天天看点

Java 类和对象详解(三)——private修饰符private 修饰符的应用getter 和 setter 方法

引言:

在咱们之前写的程序中,Person类的name和age属性,在类的外部,主方法中,或者其他地方都可以直接调用这个属性,这显得于有些不合理。

举个现实生活中的栗子:

对于银行可这个类来说,银行卡的卡号,余额,密码,这三个属性。

如果这三个属性直接暴露在外部,这就会很不安全,不能让这些属性通过对象就被外部直接访问了。

再举个栗子:

对于汽车这个类来说,车从熄火到发动起起来,是需要很多个属性之间相互配合。这些属性对于我们用户来说,是不可见的,也是我们不关注的。

只需要用钥匙一键启动(也就是我们编程中的方法),方法的内部把这些程序来进行一个调配和操作,车就启动了,我们不关心内部过程。

面向对象一共有三大特性 :封装,继承和多态。

文章目录

  • private 修饰符的应用
  • getter 和 setter 方法

我们首先介绍 封装,继承和多态我们会在后边的博文中介绍~~

封装的特性:这里我们只介绍两个重要的特性——保护性和易用性,保护性就是上面银行卡的例子,而易用性体现在汽车那个例子。

用private实现属性和方法的封装只是封装中的一种(这点很容易会让人误以为封装只有private)。

在Java中,所谓的权限修饰符,指的是被修饰的属性,方法,类可见的范围有多大。

一共有四大访问权限修饰符,从小到大的顺序依次为:

private < default < protected < public

private:被private修饰的属性和方法,只能在当前类的内部可见,出了当前类的内部,也就是出了 {} ,对外部就完全隐藏了。

default:这个关键字不需要写额,什么权限也没有,就是个包访问权限。

protected:这个关键字会在后边的博文中,等讲到多态和继承时候介绍到。

public:被public修饰的东东,在当前程序(项目)中都是可见的,都是可以使用的。

提出问题:

private关键字能否修饰一个类?

答:

private关键字一定不能修饰外部类,类定义的目的就是为了产生对象,让外部来使用, private修饰一个类,外部根本不知道,还怎么用。而且会编译出错!!!

private 修饰符的应用

范例1:

Java 类和对象详解(三)——private修饰符private 修饰符的应用getter 和 setter 方法

范例2:

Java 类和对象详解(三)——private修饰符private 修饰符的应用getter 和 setter 方法

范例3:

Java 类和对象详解(三)——private修饰符private 修饰符的应用getter 和 setter 方法

getter 和 setter 方法

那么问题来了,如果在类的外部想要访问这些私有属性或者方法怎么办呢???

这时就需要使用类提供的 getter(取值)和 setter(修改值)方法!

在IDEA使用快捷键 Alt + intsert 快捷生成~~

到底哪些属性需要提供getter,让外部可见,哪些属性需要提供setter,让外部修改,这个要根据属性的特征来决定。

这两个方法其实就是普通的成员方法,只是命名上有规则~~

拿上边的银行卡那个类来举例:

银行卡卡号只可取而不可修改的,银行卡的余额也是只可取而不可修改的,

银行卡的密码是既可取也可以修改的。

所以银行卡号和卡里的余额要用到getter方法,而银行卡密码要用到getter和setter方法。

阿里编程规范:

Java中所有的成员变量一律使用private封装,并且根据属性的实际情况对外提供getter和setter方法。

未完待续…