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. 《ES6标准入门》(阮一峰)--2.let 和 const 命令

    1.let命令 基本用法 let只在命令所在的代码块内(花括号内)有效. for循环的计数器,就很合适使用let命令. //var var a = []; for (var i = 0; i < ...

  2. 前端基础之Html、CSS

    Html.css相关 Html Html结构: 标签 描述 <!DOCTYPE html> 文档声明 <html> 根元素 <head> 头部 <body 主 ...

  3. 微软于 snapcraft 上发布 Visual Studio Code 的 Snap 打包版本

    微软在 snapcraft 上发布了 Visual Studio Code 的 Snap 打包版本 .Snap 是 Canonical 主导开发的应用打包格式,与 Flatpak 和 AppImage ...

  4. POJ 2593&&2479:Max Sequence

    Max Sequence Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 16329   Accepted: 6848 Des ...

  5. 不要对md5file.read()计算md5值

    最近遇到的一个问题,我使用以下代码对备份文件计算MD5值: # md5file=open("%s" % outputpath, 'rb') # md5=hashlib.md5(md ...

  6. 如何生成 SSH keys, 并在 Github 或 Gitlab 等上添加密钥

    1 打开 Git Bash $ 2 输入 dir, 确认当前文件夹,并切换到想存密钥文件即pub文件的路径 $ dir 3 生成 密钥命令 ssh-keygen -t rsa -C "{ y ...

  7. 【LeetCode】搜索旋转排序数组

    [问题]假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值,如果数组中存在这个 ...

  8. hibernate.hbm.xml必须必须配置主键

    hibernate.hbm.xml必须必须配置主键 <id name="XXid" type="java.lang.long" column=" ...

  9. JAVA字节码文件之第四篇(方法分析)

    一.Methods 方法字节码结构 Methods 字节码结构: Methods num:占两byte,Methods 的具体内存占n个byte 方法中每个属性都是Attribute_info,Att ...

  10. python保留小数位

    前言 保留小数位是我们经常会碰到的问题,尤其是刷题过程中.那么在python中保留小数位的方法也非常多,但是笔者的原则就是什么简单用什么,因此这里介绍几种比较简单实用的保留小数位的方法: 方法一:fo ...