上一页 1 ··· 9 10 11 12 13 14 15 下一页
摘要: 有时候,可能希望阻止人们利用某个类定义子类.不允许扩展的类被称为final类.如果在定义类的时候使用了final修饰符就表面这个类是final类.例如,假设希望阻止人们定义Executive类的子类,就可以在定义这个类的时候,使用final修饰符声明. public final class Exec 阅读全文
posted @ 2020-09-21 19:59 刘指导 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 现在有两个类,Employee和Manager,其中Employee是父类,Manager是子类 public class Employee{ private String name; private double salary; public Employee(String name,double 阅读全文
posted @ 2020-09-21 19:27 刘指导 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 一定要保证数据私有 这是最重要的;绝对不要破坏封装性.有时候,需要编写一个访问器方法或更改器方法,但是最好还是保持实例域的私有性.很多惨痛的经验告诉我们,数据的表示形式很可能会改变,但他们的使用方式却不会经常发生变化.当数据爆出私有时,它们表示形式的变化不会对类的使用者产生影响,即出现bug也易于检 阅读全文
posted @ 2020-09-21 17:11 刘指导 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 前面已经讲过两种初始化数据域的方法: 在构造器中设置值 在声明中复制 实际上,java还有第三种机制,称为初始化块.在一个类的声明中,可以包含对个代码块.只要构造类的对象,这些块就会被执行.例如 class Employee{ private static int nextId; private i 阅读全文
posted @ 2020-09-21 16:20 刘指导 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 关键字this引用方法的隐式参数.然而,这个关键字还有另外一个含义. 如果构造器的第一个语句形如this(....),这个构造器将调用同一个类的另一个构造器.下面是一个典型的例子: class Employee{ public Employee(double s){ //calls Employee 阅读全文
posted @ 2020-09-21 15:54 刘指导 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 通过重载类的构造器方法,可以采用多种形式设置类的实例域的初始状态.确保不管怎样调用构造器,每个实例域都可以被设置为一个有意义的初值,这是一种很好的设计习惯. 可以在类定义中,直接将一个值赋给任何域,例如: class Employee{ private String name = "tom"; .. 阅读全文
posted @ 2020-09-21 15:40 刘指导 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 如果在构造器中没有显式地给域赋予初值,那么就会被自动赋为默认值:数值为0,布尔值为false,对象引用为null. 这是域与局部变量的主要不同点.必须明确地初始化方法中的局部变量.但是,如果没有初始化类中的域,将会被自动初始化为默认值. class Employee{ private String 阅读全文
posted @ 2020-09-21 15:27 刘指导 阅读(1002) 评论(0) 推荐(0) 编辑
摘要: 有些类有多个构造器.例如:可以如下构造一个空的StringBuilder对象: StringBuilder message = new StringBuilder(); 或者可以指定一个初始字符串: StringBuilder todoList = new StringBuilder("To do: 阅读全文
posted @ 2020-09-21 15:00 刘指导 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 静态域 如果将域定义为static,每个类中只有这样一个域.而每一个对象对于所有的实例域却都有自己的一份拷贝.例如需要给每一个雇员赋予唯一的标识码.这里给Employee类添加一个实例域id和一个静态域nextId: class Employee{ private static int nextId 阅读全文
posted @ 2020-09-21 11:46 刘指导 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 可以将实例域(属性)定义为final.这样构建对象时必须初始化这样的域.也就是说,必须确保在每一个构造器执行之后,这个域的值被设置,并且在后面的操作中,不能够再对它进行修改. 例如:可以将Employee类中的name域声明为final,这样在对象构建之后,这个值不会再被修改,即没有setName方 阅读全文
posted @ 2020-09-20 22:01 刘指导 阅读(198) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 下一页