Java学习笔记06
1. 类和对象
1.1 类和对象
客观存在的事物皆为对象,所以我们也常常说万物皆对象。
类
- 类的理解
- 类是对现实生活中一类具有共同属性和行为的事物的抽象
- 类是对象的数据类型,类是具有相同属性和行为的一组对象的集合
- 类的组成
- 属性:指事物的特征
- 行为:指事物能执行的操作
类和对象的关系
类是对对象的一种抽象描述,对象是类的具体实现。
1.2 类的定义
类是由属性和行为两部分组成。
类的定义步骤
- 定义类
- 编写类的成员变量
- 编写类的成员方法
1.3 对象的使用
格式
类名 对象名 = new 类名(参数1, 参数2, ...);
2. 成员变量和局部变量
区别
- 类中位置不同:
- 成员变量:类中方法外
- 局部变量:类中方法内
- 内存中位置不同:
- 成员变量:堆内存
- 局部变量:栈内存
- 生命周期不同:
- 成员变量:对象创建时创建,对象销毁时销毁
- 局部变量:方法调用时创建,方法调用完毕时销毁
- 初始化值不同:
- 成员变量:有默认初始化值
- 局部变量:无默认初始化值
3. 封装
3.1 封装思想
概述
面向对象三大特征:封装、继承、多态。
对象代表什么,就得封装对应的数据,并提供数据对应的行为。
实现
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
3.2 private关键字
private是一个修饰符,可以用来修饰类的成员(成员变量、成员方法)。
注意:
被
private修饰的成员,只能在本类进行访问,针对private修饰的成员变量,如果需要被其他类使用,需要提供相应的get、set方法。
3.3 this关键字
this修饰的变量用于指代成员变量,主要作用是区分重名的局部变量和成员变量。
4. 构造方法
概念
构造方法是一种特殊的方法,它被用来创建对象以及对对象数据的初始化。
格式
修饰符 类名 (参数) {
方法体
}
注意:
- 构造方法无返回值
- 构造方法的方法名必须和类名完全一致
- 如果不定义构造方法,虚拟机会自动生成一个空参构造
- 如果定义了带参构造方法,虚拟机就不会自动生成空参构造
5. 标准Java bean类
要求
- 类名需要见名知意
- 成员变量都使用
private修饰 - 至少提供两个构造方法:无参构造方法、带全部参数的构造方法
- 提供每个成员变量对应的get和set方法
- 如果还有其他行为,也需要写上
Java学习笔记06的更多相关文章
- Java学习笔记 06 数字格式化及数学运算
一.数字格式化 DecimalFormat类 >>DecimalFormat是NumberFormat的子类,用于格式化十进制数,可以将一些数字格式化为整数.浮点数.百分数等.通过使用该类 ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 0025 Java学习笔记-面向对象-final修饰符、不可变类
final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- Java学习笔记-多线程-创建线程的方式
创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...
随机推荐
- 服务器DMZ理解
转别人的 您的公司有一堆电脑,但可以归为两大类:客户机.服务器.所谓客户机就是主动发起连接请求的机器,所谓服务器就是被动响应提供某些服务的机器.服务器又可以分仅供企业内网使用和为外网提供服务两种. ...
- ybtoj 12F
求值的话改为求解前缀和的值,通过两个前缀和相减即可得到每个值. 每次询问相当于给一个方程. 一共有 $n$ 个未知数,因此需要 $n$ 个方程,同时每个数都必须至少在方程中出现一次. 最小生成树求解即 ...
- vscode设置终端主题,设置终端选中颜色
vscode定义主题色官网: https://code.visualstudio.com/api/references/theme-color#integrated-terminal-colors 问 ...
- Asp.net zero项目框架和配置
- Java基础学习——Scanner
import java.util.Scanner; public class HelloWord{ public static void main(String[] args){ Scanner s= ...
- windows代码获取系统硬件信息的两种方式
欢迎访问我的个人博客:xie-kang.com 原文地址 目前windows有两种方式获取系统硬件信息: 1)通过GetSystemFirmwareTable API获取SMBIOS信息,一段含丰富信 ...
- Springboot ehcache/redis双缓存问题
问题1:两个CacheManager 会报两个相同的实现类错误需要继承CachingConfigurerSupport 重写cacheManager方法,指定默认一个返回缓存提供者 @Configur ...
- 例题1:shell脚本
题目总结: 1.搜索子域名的shell脚本 2.嗅探并抓去网页快照shell脚本 3.漏洞利用程序下载脚本 题目一:依次输入以下代码即可: 1.wget www.megacorpone.com 2. ...
- c# form-data表单提交,post form上传数据、文件
引用自:https://www.cnblogs.com/DoNetCShap/p/10696277.html 表单提交协议规定:要先将 HTTP 要求的 Content-Type 设为 multipa ...
- topN算法问题
问题: 如何在10亿个整数中找出前1000个最大的数? 小顶堆堆排序 首先,我们需要构建一个大小为N(1000)的小顶堆,小顶堆的性质如下:每一个父节点的值都小于左右孩子节点,然后依次从文件中读取10 ...