`

《Java核心技术(第八版)》笔记之第4章对象与类

阅读更多

4.2 使用现有类

1. 一个对象变量并没有实际包含一个对象,而仅仅引用一个对象。 new操作符的返回值也是一个引用。 (P93)

2.所有Java对象都存储在堆中. (P94) 

 

4.4 静态域和静态方法

1.static:属于类且不属于类对象的变量和方法。 (P112)

 

4.5 方法参数

1. Java采用的是值调用,即方法得到的是所有参数值的一个拷贝。 参数有两种:基本数据类型和对象引用。

  (1). 一个方法不能修改一个基本参数类型的参数(即数据值和布尔型);

  (2). 一个方法可以改变一个对象参数的状态;

  (3).一个方法不能实现让对象参数引用一个新的对象。(P118)

 

4.6 对象构造

1.方法签名:方法名及参数类型。 如indexOf(int) 。注意,返回类型不是方法签名的一部分。 (P121)

2. 在执行构造器之前,先执行实例域的赋值操作。而实例域的初始值并不一定是常量。(P122)

3.数据域的有三种初始化方法:在构造器中设置值、在声明中赋值;以及实始化块(不一定是静态块) (P124) 

    下面这段代码,就是先运行初始化块,然后才运行构造器的主体部分。

class Employee
{
  public Employee(String n, double s){
    name = n;
    salary = s ;
  }

  public Employee( ){
    name = "";
    salary = 0 ;
  }
  ... 
  private static int nextId;

  private int id;
  private String name;
  private double salary;
 ... ... 
 
 //Object initialization block
 {
   id = nextId;
   nextId++;
 }

   

   4.调用构造器的具体处理步骤:(P125)

  (1). 所有数据域被初始化为默认值(0、false或null);

  (2). 按照在类声明中出现的次序,依次执行所有域初始化语句和初始化块;

  (3). 如果构造器第一行调用了第二个构造器,则执行第二个构造器主体;

  (4). 执行这个构造器的主体。

 

  5.所有的静态初始化语句以及静态初始化块都将依照类定义的顺序执行。 (P125)

 

  6. 可以应用一个类似dispose或close的方法完成相应的清理操作。但需要说明,如果一个类使用了这样的方法,当对象不再使用时一定要调用它。(P128)

 

4.7 包

  1.在包中定位类是编译器的工作。类文件中的字节码肯定使用完整的包名来引用其他类。 (P129)

  2.如果将一个包密封(package sealing)起来,就不能再向这个包添加新类了。 (P134)

 

4.10 在的设计技巧。

   1、一定要对数据初始化。

    java不会对局部变量进行初始化,但是会对对象的实例域进行初始化,方式是可以提供默认值(最好不要依赖系统的默认值,而应该显式地设置),也可以在构造器设置值。  (P141)

 

分享到:
评论

相关推荐

    【java编程思想第五版笔记】第八章复用(更新中)

    【java编程思想第五版笔记】第八章复用(更新中)面向过程和面向对象复用的区别:组合的语法关于上面的程序的解析初始化引用有四种方法:继承语法 更新自2020.04.22 代码复⽤是⾯向对象编程(OOP)最具魅⼒的原因之⼀...

    2018最新JAVA架构师培训视频教程(附笔记、源码 、视频 网盘链接 详细)

    018最新JAVA架构师培训视频教程(附笔记、源码、视频教程 全网盘链接) 内含完整资料及代码: 一、互联网并发编程 二、互联网网络通信编程 三、JAVA虚拟机 四、Linux部分 五、数据库设计与优化 六、互联网...

    整理后java开发全套达内学习笔记(含练习)

    进行高精度运算可以用java.math包中BigDecimal类中的方法。 自动类型提升又称作隐式类型转换。 强制类型转换:int ti; (byte) ti ; 强制转换,丢弃高位 宣告变量名称的同时,加上“final”关键词来限定,这个...

    完整学习笔记:《剑指offer》Java版代码实现

    第四题 替换字符串中的空格 测试4 第五题 从尾到头打印链表 测试5 第六题 由前序和中序重建重建二叉树 测试6 第七题 使用两个栈实现队列 测试7 第八题 寻求旋转带宽的最小数字 测试8 第九题 斐波那契数列的第n项...

    asp.net知识库

    与DotNet数据对象结合的自定义数据对象设计 (一) 数据对象与DataRow ASP.NET中大结果集的分页[翻译] .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常 Ado.net 与NHibernate的关系? 动态创建数据库...

    IBM WebSphere Portal门户开发笔记01

    4、传播与继承 42 5、用户与组管理 43 四、域名 44 1、portal服务器域名 44 2、本机域名映射 44 五、WCM几个页面路径及其名称 44 1、登录页面 44 2、主题及主页页面 45 3、皮肤外观页面路径 45 4、session超时页面 ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。  拉里•埃里森  就业前景 从就业与择业的...

    springmybatis

    mybatis实战教程mybatis in action之四实现关联数据的查询 mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action...

    Eclipse开发分布式商城系统+完整视频代码及文档

    │ 淘淘商城第四天笔记.docx │ ├─05.第五天 │ 01.课前复习.avi │ 02.课程计划.avi │ 03.服务层taotao-rest工程搭建.avi │ 04.创建taotao-portal,展示首页.avi │ 05.展示商品类目01.avi │ 06.jsonp原理....

    APKTool批处理版l

    (二)有的软件本身支持多语种,这样可能会在res文件夹下会出现多个以values开头的文件夹,对于这类软件,汉化也有两种做法: 一种是按照上面的方法,直接把默认语言文件夹values里面的资源都汉化掉,干脆利落,不过...

Global site tag (gtag.js) - Google Analytics