day06【类与对象、封装、构造方法】

面向对象
类与对象
三大特征——封装
构造方法

能够理解面向对象的思想
能够明确类与对象关系
能够掌握类的定义格式
能够掌握创建对象格式,并访问类中的成员
能够完成手机类的练习
能够理解对象的内存图
能够说出成员变量和局部变量的区别
能够理解private关键字的含义
能够说出this关键字可以解决的问题
能够理解构造方法的含义
能够用封装的思想定义一个标准类


day06_01_面向对象思想的概述

day06_02_面向对象思想的举例

面向对象的语言中,包含了三大基本特征,即封装、继承和多态。

day06_03_类和对象的关系

类:是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物。
属性:就是该事物的状态信息。
行为:就是该事物能够做什么。

对象:是一类事物的具体体现。对象是类的一个实例(对象并不是找个女朋友),必然具备该类事物的属性和行为。

类与对象的关系
类是对一类事物的描述,是抽象的。
对象是一类事物的实例,是具体的。
类是对象的模板,对象是类的实体。

day06_04_类的定义

成员变量:对应事物的属性

public class ClassName {
//成员变量
//成员方法
}

成员方法:对应事物的行为

day06_05_对象的创建及其使用

创建对象:

类名 对象名 = new 类名();

使用对象访问类中的成员:

对象名.成员变量;
对象名.成员方法();

day06_07_一个对象的内存图

day06_08_两个对象使用同一个方法的内存图

day06_09_两个引用指向同一个对象的内存图


day06_10_使用对象类型作为方法的参数

day06_11_使用对象类型作为方法的返回值

day06_12_成员变量和局部变量的区别

day06_13_面向对象三大特征之封装性

day06_14_private关键字的作用及使用

2.1 封装的原则
将属性(成员变量)隐藏起来,若需要访问某个属性,提供公共方法对其访问。

2.2 封装的步骤
1. 使用 private 关键字来修饰成员变量。
2. 对需要访问的成员变量,提供对应的一对 getXxx 方法 、 setXxx 方法。

被private修饰后的成员变量和成员方法,只在本类中才能访问。

day06_15_练习使用private关键字定义学生类

day06_16_this关键字的作用

this代表所在类的当前对象的引用(地址值),即对象自己的引用。
小贴士:方法中只有一个变量名时,默认也是使用 this 修饰,可以省略不写。比如在SSM整合项目中使用@Autowired注入的对象时候,可以省略this关键字。

day06_17_构造方法

当一个对象被创建时候,构造方法用来初始化(创建)该对象,给对象的成员变量赋初始值。
小贴士:无论你与否自定义构造方法,所有的类都有构造方法,因为Java自动提供了一个无参数构造方法,
一旦自己定义了构造方法,Java编译器自动提供的默认无参数构造方法就会不再赠送。

day06_18_定义一个标准的类

IDEA:Alt+Insert

Eclipse:Shift+Alt+S

========================================================

end

01 语言基础+高级:1-2 面向对象和封装_day06【类与对象、封装、构造方法】的更多相关文章

  1. 01 语言基础+高级:1-7 异常与多线程_day06 【线程、同步】

    day06 [线程.同步] 主要内容 线程 同步 线程状态 一.学习目标 1. 能够描述Java中多线程运行原理 2. 能够使用继承类的方式创建多线程 3. 能够使用实现接口的方式创建多线程 4. 能 ...

  2. 01 语言基础+高级:1-8 File类与IO流_day10【缓冲流、转换流、序列化流】

    day10[缓冲流.转换流.序列化流] 主要内容 缓冲流 转换流 序列化流 打印流 教学目标 能够使用字节缓冲流读取数据到程序 能够使用字节缓冲流写出数据到文件 能够明确字符缓冲流的作用和基本用法 能 ...

  3. 01 语言基础+高级:1-6 集合_day03【List、Set、Collections工具类】

    day03 [List.Set.数据结构.Collections] 主要内容 数据结构 List集合 Set集合 Collections 第一章 数据结构 2.1 数据结构有什么用 我们将常见的数据结 ...

  4. 01 语言基础+高级:1-7 异常与多线程_day05 【异常、线程】

    day05 [异常.线程] 主要内容 异常.线程 教学目标 能够辨别程序中异常和错误的区别 说出异常的分类 说出虚拟机处理异常的方式 列举出常见的三个运行期异常 能够使用try...catch关键字处 ...

  5. 01 语言基础+高级:1-10 JDK8新特性_day12【函数式接口】

    day12[函数式接口] 主要内容自定义函数式接口函数式编程常用函数式接口 教学目标能够使用@FunctionalInterface注解能够自定义无参无返回函数式接口能够自定义有参有返回函数式接口能够 ...

  6. 01 语言基础+高级:1-5 常用API第二部分_day01.【Object类、常用API: Date类、System类、StringBuilder类】

    day01[Object类.常用API] 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 java.lang.O ...

  7. 01 语言基础+高级:1-7 异常与多线程_day07 【线程池、Lambda表达式】

    day07[线程池.Lambda表达式] 主要内容 等待与唤醒案例 线程池 Lambda表达式 教学目标 -[ ] 能够理解线程通信概念-[ ] 能够理解等待唤醒机制-[ ] 能够描述Java中线程池 ...

  8. 01 语言基础+高级:1-6 集合_day02【Collection、泛型】

    day02[Collection.泛型] 主要内容 Collection集合 迭代器 增强for 泛型 教学目标 能够说出集合与数组的区别 说出Collection集合的常用功能 能够使用迭代器对集合 ...

  9. 01 语言基础+高级:1-9 网络编程_day11【网络编程】

    day11[网络编程] 主要内容 软件架构CS/BS 网络通信三要素 TCP通信 Socket套接字 ServerSocket 教学目标 能够辨别UDP和TCP协议特点 能够说出TCP协议下两个常用类 ...

随机推荐

  1. 060-PHP函数定义和调用

    <?php function add($x,$y){ //定义函数add return $x+$y; } echo add(15,6); //调用函数并输出结果 ?>

  2. GDI+应用

    GDI+:Graphics Device Interface Plus也就是图形设备接口,提供了各种丰富的图形图像处理功能;在C#.NET中,使用GDI+处理二维(2D)的图形和图像,使用Direct ...

  3. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-flag

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  4. spring boot 开发环境搭建(Eclipse)

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  5. Python量化交易的简单介绍

    Python只是一门技术. 一.量化交易的发展 1.国外量化金融领域发展日趋成熟. 2.近几年量化交易在国内掀起热潮. 3.Python作为量化交易的编译语言. 二.什么是量化交易 1.利用计算机强大 ...

  6. Maccms后门分析复现(并非官网的Maccms){10.15 第二十二天}

    该复现参考网络中的文章,该漏洞复现仅仅是为了学习交流,严禁非法使用!!!! Maccms官网:http://www.maccms.cn/ Maccms网站基于PHP+MYSQL的系统,易用性.功能良好 ...

  7. UVA - 1610 Party Games(聚会游戏)(构造)

    题意:输入一个n(2<=n<=1000,n是偶数)个字符串的集合D,找一个长度最短的字符串S(不一定在D中出现),使得D中恰好一半串小于等于S,另一半串大于S.如果有多解,输出字典序最小的 ...

  8. UITextFeild的基本属性

    textField 基本属性   _textField.frame = CGRectMake(0, 0, 200, 50); _textField.delegate = self; _textFiel ...

  9. Linux笔记01

    linux目录结构 : linux只有一个目录. usr:等价于programfiles: etc:存放系统配置 root:管理员(超级用户)目录, home:存放其他用户的目录: lib:共享包: ...

  10. springboot-jar

    预览 1.pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&quo ...