Java之路---Day05
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的更多相关文章
- Java之路——名词解释(一)
一.开篇 许多人在初接触Java的时候,都会被各种Java的英文缩写名词给弄得头晕脑胀.看一个技术,内容里又会有一堆其他的技术名词,看了半天不知所云.尝试去查一下这些名词的解释,除了非常学术性的解释之 ...
- Java之路——敬JAVA初学者(作者:MoMo)
作为一名大四的毕业生,大学三年过,有得有失.作为一个喜欢编程,喜欢JAVA的人,自学其实是一件美事,很有意思的事.要是能再找个女朋友一起学.嘿嘿,就不枉在大学走了一遭啊! 要离开学校了,还是想留 ...
- Java之路——环境配置与编译运行
本文大纲 一.开篇 二.JDK下载 三.JDK安装 四.环境配置 五.初识Java编译 六.Java与Javac 七.第一个Java程序 八.总结 九.参考资料 一.开篇 通过对之前Java之路的了解 ...
- Java之路 ——初识Eclipse
零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 八.Eclipse 快捷键 九.总结 一.前 ...
- 2017-2018-1 JAVA实验站 冲刺 day05
2017-2018-1 JAVA实验站 冲刺 day05 各个成员今日完成的任务 小组成员 今日工作 完成进度 张韵琪 进行工作总结 100% 齐力锋 找按钮音乐 100% 张浩林 写博客 100% ...
- 转行自学 Java 之路的纪念册
前言: 最近在重读<小狗钱钱>,我对其中的"成功日记"概念特别深刻,偶尔也会记一记“成功日记”. 想了想人生走找到今天,阶段性“成功日记”有没有呢? 有的!几年前的一篇 ...
- 是什么让我走上Java之路?
选择方向,很多人都为根据自己的兴趣爱好和自己的能力所长而作出选择.那么是什么让我走上Java之路? 整个高三我有两门课程没有听过课,一门是数学,一门是物理.当时候物理没有听课的原因很简单,我有一本&l ...
- 我的Java之路
前言: 之前在学习python,刚开始的时候跟多数小白一样学习一些基础的知识,比如数据类型,用法,基本的语言结构,学了一段时间实在是学习不下去了,真是太TMD的无聊了,很多方法都记不住,也不知道学了这 ...
- Java之路——初识Eclipse
零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 八.Eclipse 快捷键 九.总结 一.前 ...
随机推荐
- Video Architecture Search
Video Architecture Search 2019-10-20 06:48:26 This blog is from: https://ai.googleblog.com/2019/10/v ...
- Mysql 查询今天,这周,这个月,今年的数据
今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...
- 【mybatis源码学习】缓存机制
一.mybatis的缓存 一级缓存:sqlsession级别,默认开启(一个事务内有效)二级缓存: sqlsessionFactory级别,需要手动开启,在xml配置cache节点(依赖事务的执行结 ...
- ubuntu16 安装 qBittorrent ( Linux下BT下载图形工具 )
qBittorrent 是QT编写的一款BT下载软件,支持FreeBSD, Linux, macOS, OS/2, Windows: 官网:https://www.qbittorrent.org/ 在 ...
- c# 导出excel的三种方式
第一种:流导出 SaveFileDialog exe = new SaveFileDialog(); exe.Filter = "Execl files (*.xls)|*.xls" ...
- 破解MySQL登录密码的几种方法
工具列表 Medusa Ncrack Hydra Metasploit Medusa medusa -h 192.168.1.106 –U /root/Desktop/user.txt –P /ro ...
- DRF概述
目录 一. REST 1. 什么是编程? 2. 什么是REST? 二. 知识准备 1. CBV(class based view) 2. 类方法 classmethod和classonlymethod ...
- 前端传实体数组;后台list实体接收参数
前端页面: $.ajax({ url: url, data: JSON.stringify(data), dataType: "json", contentType: " ...
- csu 1978: LXX的图论题
1978: LXX的图论题 Submit Page Summary Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 71 ...
- 利用nginx搭建文件服务器
1.安装nginx 安装教程:https://www.cnblogs.com/sunny1009/p/11411673.html 2.配置nginx 配置server节点下的location部分和se ...