2019-10-19-21:09:31

面向对象的封装性


封装性

  概念:封装就是将一些细节信息隐藏起来,对于外界不可见

面向对象封装性在Java中的体现

  1.方法就是一种封装

public class Packaged {
public static void main(String[] args) {
int[] array = {5,15,20,25,30};//定义一个静态数组
int max = getMax(array);//调用getMax方法,然后赋值给max变量
System.out.println("最大值:"+max);
} public static int getMax(int[] array){
int max = array[0];//先给定一个最大值,假设第一个元素为最大值
for (int i = 0; i < array.length; i++) {//for循环遍历数组元素
if (array[i] > max){//通过if语句来比较值
max = array[i];//把最大值赋值给max变量
}
}
return max;//返回最大值给调用
}
}

  2.关键字private也是一种封装

Private关键字的使用

  why:定义某些类时,无法阻止不合理的数值被设置进来,所以用private关键字把需要保护的成员变量进行修饰

  注意:

    1.使用了private进行修饰,只能在本类中使用,不能超出类的范围

    2.间接访问private成员变量,就是要定义一对Getter/Setter方法

This关键字的用法

  1.当方法的局部变量和类的成员变量重名时,根据"就近原则",优先使用局部变量

  2.如果需要访问本类的成员变量,需要使用格式

    this.成员变量名(通过谁调用的方法,谁就是this)

构造方法

  构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法。
  格式。
    public类名称(参数类型参数名称) (
      方法体
    }
  注意事项:
    1.构造方法的名称必须和所在的类名称完全一样,就连大小写也要一样
    2.构造方法不要写返回值类型,连void都不写
    3.构造方法不能return一一个具体的返回值
    4.如果没有编写任何构造方法,那么编译器将会默认赠送一个构造方法。 没有参数、方法体什么事情都不做.
    5.一旦编写了至少一个构造方法,那么编译器将不再赠送.
    6.构造方法也是可以进行重载的。
    重载,方法名称相同,参数列表不同。

  

public class Private01 {
private String name;
private int age; public Private01() {//无参构造方法
} public Private01(String name, int age) {//全参构造方法
this.name = name;
this.age = age;
} public void setName(String name) {
this.name = name;
} public void setAge(int age) {
this.age = age;
} public String getName() {
return name;
} public int getAge() {
return age;
} public static void main(String[] args) {
Private01 private01 = new Private01();//无参构造
System.out.println("-----------------"); Private01 private02 = new Private01("张钧甯",26);//全参构造
System.out.println("姓名:"+private02.name+",年龄"+private02.age);
}
}

定义一个标准类

  一个标准的类通常要拥有下面四个组成部分:
    1.所有的成员变量都要使用private关键字修饰
    2.为每一个成员变量编写一对儿Getter/Setter方法
    3.编写一个无参数的构造方法
    4.编写一个全参数的构造方法

  这样的标准类也叫做Java Bean

Java之路---Day05的更多相关文章

  1. Java之路——名词解释(一)

    一.开篇 许多人在初接触Java的时候,都会被各种Java的英文缩写名词给弄得头晕脑胀.看一个技术,内容里又会有一堆其他的技术名词,看了半天不知所云.尝试去查一下这些名词的解释,除了非常学术性的解释之 ...

  2. Java之路——敬JAVA初学者(作者:MoMo)

    作为一名大四的毕业生,大学三年过,有得有失.作为一个喜欢编程,喜欢JAVA的人,自学其实是一件美事,很有意思的事.要是能再找个女朋友一起学.嘿嘿,就不枉在大学走了一遭啊!    要离开学校了,还是想留 ...

  3. Java之路——环境配置与编译运行

    本文大纲 一.开篇 二.JDK下载 三.JDK安装 四.环境配置 五.初识Java编译 六.Java与Javac 七.第一个Java程序 八.总结 九.参考资料 一.开篇 通过对之前Java之路的了解 ...

  4. Java之路 ——初识Eclipse

    零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 八.Eclipse 快捷键 九.总结 一.前 ...

  5. 2017-2018-1 JAVA实验站 冲刺 day05

    2017-2018-1 JAVA实验站 冲刺 day05 各个成员今日完成的任务 小组成员 今日工作 完成进度 张韵琪 进行工作总结 100% 齐力锋 找按钮音乐 100% 张浩林 写博客 100% ...

  6. 转行自学 Java 之路的纪念册

    前言: 最近在重读<小狗钱钱>,我对其中的"成功日记"概念特别深刻,偶尔也会记一记“成功日记”. 想了想人生走找到今天,阶段性“成功日记”有没有呢? 有的!几年前的一篇 ...

  7. 是什么让我走上Java之路?

    选择方向,很多人都为根据自己的兴趣爱好和自己的能力所长而作出选择.那么是什么让我走上Java之路? 整个高三我有两门课程没有听过课,一门是数学,一门是物理.当时候物理没有听课的原因很简单,我有一本&l ...

  8. 我的Java之路

    前言: 之前在学习python,刚开始的时候跟多数小白一样学习一些基础的知识,比如数据类型,用法,基本的语言结构,学了一段时间实在是学习不下去了,真是太TMD的无聊了,很多方法都记不住,也不知道学了这 ...

  9. Java之路——初识Eclipse

    零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 八.Eclipse 快捷键 九.总结 一.前 ...

随机推荐

  1. What is the difference between UNION and UNION ALL?

    What is the difference between UNION and UNION ALL? UNION removes duplicate records (where all colum ...

  2. PHP商品秒杀问题解决方案实例详解【mysql与redis】

    本文实例讲述了PHP商品秒杀问题解决方案.分享给大家供大家参考,具体如下: 引言 假设num是存储在数据库中的字段,保存了被秒杀产品的剩余数量. if($num > 0){ //用户抢购成功,记 ...

  3. 如何在本地使用scala或python运行Spark程序

    如何在本地使用scala或python运行Spark程序   包含两个部分: 本地scala语言编写程序,并编译打包成jar,在本地运行. 本地使用python语言编写程序,直接调用spark的接口, ...

  4. Vue基础知识学习笔记

    一.环境搭建1.安装nodejs ((https://nodejs.org/en/)2.安装脚手架 npm install --global vue-cli /cnmp install --globa ...

  5. ubuntu 各压缩文件解压命令大全

    .tar 解包:tar xvf xxx.tar 打包:tar cvf xxx.tar DirName (注:tar是打包,不是压缩!) .gz 解压1:gunzip FileName.gz 解压2:g ...

  6. windows系统下设置mtu值的方法

    说起 MTU 值,可能许多朋友连听都没听说过.简单来说,我们上网时所进行的操作,都是通过传输一个又一个“数据包”来实现的,而 MTU 值就是用来设定可传输数据包的最大尺寸的.很显然,MTU 值设置得过 ...

  7. 解决IDEA打Jar包找不到或无法加载主类问题

    转自以下博主内容:https://blog.csdn.net/qq_43189115/article/details/99856659 就是因为打包一直提示有问题,网上很多帖子试过没有用,就是这个博主 ...

  8. Linux下安装{Git}

    环境 { "操作系统":"CentOS 7.5 64位", "CPU":"1核", "内存":&qu ...

  9. WPF--控件模板的视觉效果呈现流程及逻辑

    外部通过属性把数据--传递给-->(破拆后)内部可视化树 ----> 内部可视化树呈现出视觉效果 ----> 各种内部可视化组件的视觉效果组合  --- 呈现 -->  外部的 ...

  10. Appium脚本(5) 元素等待方法示例

    思考 在自动化过程中,元素出现受网络环境,设备性能等多种因素影响.因此元素加载的时间可能不一致,从而会导致元素无法定位超时报错,但是实际上元素是正常加载了的,只是出现时间晚一点而已.那么如何解决这个问 ...