Java核心技术卷一读书笔记 第四章:对象与类

4.2 使用预定义类
4.2.3更改器方法与访问器方法
1.
更改器方法:对实例域做出修改的方法 set方法
访问器方法:仅访问而不修改 get方法
一般加上前缀,如

Date time=calendar.getTime()
calender setTime(time)

4.3用户自定义类
1.设计主力类(workhorse class) 没有main方法,但是有自己的实例域和实例方法
2.在一个源文件中
只能有一个公有类(public访问修饰符,包含main方法,文件名必须与public类的名字匹配)

public class EmployeeTest{
	public static void main(String[] args){
	}
}

但可以有任意数目非公有类(没有main方法,但是有自己的实例域和实例方法)。

class ClassName{
	field1
	field2
	...
	constructor1
	constructor2
	...
	method1 
	method2
	...
}

注意用public 还是 private修饰
4.构造器
public Employee(String n ,double s, int year ,int month, int day){
name=n;
salary=s;
GregorianCalendar calendar= new GregorianCalenda(year, month-1, day);
hireDay = calendar.getTime();
}
注意:
构造器与类同名
每个类可以有多个构造器
构造器可以有多个参数
构造器没有返回值
构造器总是伴随着new操作使用

5.封装

4.4静态域和静态方法
静态域、静态方法(用static修饰)伴随着类一直存在。静态方法通过类名调用。调用静态方法不需要创建实例(这也是main是静态方法的原因)。
1、静态域
private static int nextId=1
静态域只属于他所属的类,不属于任何实例对象。这个类所有实例将共享一个nextId
2.静态常量

public class Math{
	...
	public static final double PI=3.1415926;
	...
}

此时为静态常量,可以直接用 Math.PI 调用这个常量
如果关键字static被省略,

public class Math{
	...
	public final double PI=3.1415926;
	...
}

PI就变成了实例域,需要通过Math类的对象访问PI,并且每个对象会产生一个拷贝

3.静态方法
如Math,pow(x,a)
运算时不需要使用Math对象,并且静态方法也不能操作对象,所以不能访问实例域,但是可以访问自己类中的静态域(如return nextId)

4.final 实例域
(1)final修饰后,构造器执行后,域的值被设置并且之后 不能再被修改
(2)final修饰基本类型域,或不可变类型域
private final String name
String就是不可变的类。
若修饰可变的类,后续过程会出现错误!

4.5 方法参数
1.方法参数两种类型
基本数据类型:方法不能修改基本数据类型的引用,而是x被初始化为一个拷贝,更改的事拷贝的值
对象引用:

Java中方法参数的总结(Java中都是值传递,而不是引用传递):
一个方法不能修改一个基本数据类型的参数(数值型或布尔型)
一个方法可以改变一个对象参数的状态
一个方法不能让对象参数引用一个新的对象(Java中值传递的体现)

4.6对象构造
1.
重载
重载解析
签名

2.初始化数据域
(1)构造器中设置值

public Hero(){
hp = 100; //构造方法中初始化
}

(2)在声明中设置值

public String name = "some hero"

(3)初始化块

{
maxHP = 200; //初始化块
}

4.7 包
包作用域
private:只能被定义他们的类使用!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天坑转码徐小虾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值