薛小小学java:第5章 对象,一个特别的类

封装

封装的原因:避免成员变量被直接访问。根本上是为了防止类中创建出无效参数。

封装的方法:将所有成员变量前加上修饰符 private

set和get方法

方法产生的原因:封装限制了访问,因而需要通过内部方法访问。

需要注意的问题:

1.set方法一般写成: this.xx = xx; xx为传入的参数,同时也是类中的变量名

2.get方法一般写成:return this.xx; 一行代码足矣。

原因:不加this时,编译器会自动匹配最近的该变量名,加this.表明该变量名应是该对象的属性

变量和方法的访问权限

三种访问权限修饰符:

public 任何位置,任何对象都可访问

protected 同包对象,或不同包但子类对象可访问

private 只有同类对象可访问,简言之:只能被类中的方法访问,外面访问不了

默认:default:不是可使用的关键字,可以被包中任何对象访问

构造函数

toString方法

作用:将类对象转化成string,一般用于输出类对象的一些属性信息

注意:toString是Object类中的放法,如果要输出自定义类中的属性,一般要重写。

流畅接口

定义:返回类型为对象本身set方法

public TestThird setName(String name) {
    this.name = name;
    return this;

}

作用:连续赋值,代码可读性高,代码简洁 ,调用方法如下:

classA.setB(xx).setC(xx).setD(xx).....

创建对象的流程

对于 Object object = new Object();的创建流程的分析

1.声明一个Objcet类型的引用变量object

2.在堆中new一个Object类对象实例,包含该类的所有变量。

3.=将object指向堆中的该Object对象实例。

堆、栈、垃圾回收机制

堆,栈,程序执行流程中内存管理机制:

关键词: 对象对象变量存储在堆中,方法局部变量存储在栈中。

垃圾回收机制:

每个堆中的对象实例都有一个引用计数器(隐藏),保存指向自己的引用变量的个数。当引用计数为0时(让引用变量=null即可主动达成),该对象即成为迷失在堆中(lost in heap),成为待回收的垃圾。java虚拟机有默认的内存空闲率阈值,当达到这个阈值后,会执行System.gc()方法清理无引用对象,完成垃圾回收。

特别注意的是,虽然java没有析构函数,但其也具有finalize()方法。该方法能在被垃圾回收之前调用一次,但是不建议使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
读者评论 前言 简介 第1 对象导论 1.1 抽象过程 1.2 每个对象都有一个接口 1.3 每个对象都提供服务 1.4 被隐藏的具体实现 1.5 复用具体实现 1.6 继承 1.6.1 “是一个”(is-a)与“像是一个”(is-like-a)关系 1.7 伴随多态的可互换对象 1.8 单根继承结构 1.9 容器 1.9.1 参数化型(范型) 1.10 对象的创建和生命期 1.11 异常处理:处理错误 1.12 并发编程 1.13 Java与Internet 1.13.1 Web是什么 1.13.2 客户端编程 1.13.3 服务器端编程 1.22 总结 第2 一切都是对象 2.1 用引用操纵对象 2.2 必须由你创建所有对象 2.2.1 存储到什么地方 2.2.2 特例:基本型 2.2.3 Java中的数组 2.3 永远不需要销毁对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 创建新的数据型: 2.4.1 域和方法 2.4.2 基本成员默认值 2.5 方法、参数和返回值 2.5.1 参数列表 2.6 构建一个Java程序 2.6.1 名字可见性 2.6.2 运用其他构件 2.6.3 static 关键字 2.7 你的第一个J ava程序 编译和运行 2.8 注释和嵌入式文档 2.8.1 注释文档 2.8.2 语法 2.8.3 嵌入式HTML 2.8.4 一些标签示例 2.8.5 文档示例 2.9 编码风格 2.10 总结 2.11 练习 第3 操作符 3.1 更简单的打印语句 3.2 使用Java操作符 3.3 优先级 3.4 赋值 3.4.1 方法调用中的别名问题 3.5 算术操作符 3.5.1 一元加、减操作符 3.6 自动递增和递减 3.7 关系操作符 3.7.1 测试对象的等价性 3.8 逻辑操作符 3.8.1 短路 3.9 直接常量 3.9.1 指数记数法 3.10 按位操作符 3.11 移位操作符 3.12 三元操作符 if-else 3.13 字符串操作符 + 和 += 3.14 使用操作符时常犯的错误 3.15 型转换操作符 3.15.1 截尾和舍入 3.15.2提升 3.16 Java没有“sizeof” 3.17 操作符小结 3.18 总结 第4 控制执行流程 4.1 true和false 4.2 if-else 4.3 迭代 4.3.1 do-while 4.3.2 for 4.3.3 逗号操作符 4.4 Foreach语法 4.5 return 4.6 break和 continue 4.7 臭名昭著的“goto” 4.8 switch 4.9 总结 第5 初始化与清理 5.1 用构造器确保初始化 5.2 方法重载 5.2.1 区分重载方法 5.2.2 涉及基本型的重载 5.2.3 以返回值区分重载方法 5.3 缺省构造器 5.4 this关键字 5.4.1 在构造器中调用构造器 5.4.2 static的含义 5.5 清理:终结处理和垃圾回收 5.5.1 finalize()的用途何在 5.5.2 你必须实施清理 5.5.3 终结条件 5.5.4 垃圾回收器如何工作 5.6 成员初始化 5.6.1 指定初始化 5.7 构造器初始化 5.7.1 初始化顺序 5.7.2. 静态数据的初始化 5.7.3. 显式的静态初始化 5.7.4. 非静态实例初始化 5.8 数组初始化 5.8.1 可变参数列表 5.9 枚举型 5.10 总结 第6 访问权限控制 第7 复用 第8 多态 第9 接口 第10 内部 第11 持有对象 第12 通过异常处理错误 第13 字符串 第14 型信息 第15 泛型 第16 数组 第17 容器深入研究 第18 Java I/O系统 第19 枚举型 第20 注解 第21 并发 第22 图形化用户界面 附录A 补充材料 可下载的补充材料 Thinking in C:Java的基础 Java编程思想 研讨课 Hands-on Java研讨课CD Thinking in Objects研讨课 Thinking in Enterprise Java Thinking in Patterns(with Java) Thinking in Patterns研讨课 设计咨询与复审 附录B 资源 软件 编辑器与IDE 书籍 分析与设计 Python 我的著作列表 索引
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值