Java基础提高笔记一对象与类

一、前言

本文是我在工作中积累一定经验后,再读《java核心技术》一书所记录的笔记,纯粹自己记录使用,大家可以不予关注。

二、对象与类

4.1
面向对象变成–OOP,由设计类开始。
对象–行为/状态/标识
4.1.4
类之间的关系:
依赖(use-a)尽可能减少相互依赖,即低耦合度
聚合(has-a)包含对象
继承(is-a)
UML:统一建模语言,用来绘制类关系图
4.3.3
建议使用private标记实例域,保证封装性(使用域访问器、更改器getter,setter)
关键字this表示隐式参数,使用this可以与局部变量明显区分
4.3.6
如果返回的一个可变对象,比如A的方法返回了对象B,B内含有更改器方法:

B b = a.getB();
b.set...();

这将会间接通过b中方法更改了a中的b对象,这一点违反封装设计原则(但这在实际中随处可见,若是希望保证可变数据对象不被修改,可以使用return (Date)hireDay.clone();这一点很容易被忽略,在以后的开发中需要多注意)
4.3.9
final域在构建对象时必定会初始化,并且之后不能再修改(对象引用不会变)
4.4.1
static 静态域,所有类的实例对象共享同一个static域,他属于类,不属于任一对象
静态常量 static final
静态方法 不能访问实例域(非static),不需对象(无隐式参数,直接使用类名调用,所以建议使用类名而不是对象调用静态方法)
-使用情况:1、无需访问对象状态2、只需访问静态域
4.4.4
工厂方法(factory method):使用静态工厂方法构造对象。

NumberFormat currency = NumberFormat.getCurrencyInstance();
NumberFormat percent = NumberFormat.getPercentInstance();

1.无法命名构造器
2.构造器无法改变所构造的对象类型。上例中返回的是NumberFormat的子类DecimalFormat
4.5
参数:按值传递,方法不能修改传递给他们的任何参数变量的内容
1.基本数据类型无法修改
2.对象引用(对象引用及其的拷贝引用的是同一个对象,可以修改)即方法可以改变对象参数的状态,却不能让对象参数引用别的对象。
4.6
对象构造:重载方法,相同方法名,不同参数类型(方法的签名signature)
默认域被初始化,建议手工赋初始化值
4.6.3
仅当类中没有提供任何构造器的时候,系统才会提供默认的无参构造器
4.6.5
参数名 加前缀 或者 this.name=name
4.6.7
初始化块
较常使用静态初始化块static{},只在类第一次加载的时候执行
4.7.2
静态导入 import static Java.lang.System.*;
即可直接使用该类中的静态方法与静态域,而不必加类名前缀out.println()代替System.out.prtitln()
4.8.1
设置类路径 java -classpath …(Shell脚本中等)
或者设置环境变量 export CLASSPATH=……
4.9
文档注释
javadoc 以/*…/注释,javadoc会自动抽取形成概要页
其他文件链接,应放入doc-files中
UML diagram
4.10
类设计技巧
1.保证数据私有性
2.一定对数据初始化
3.不要在类中使用过多的基本类型,比如使用类代替
4.不是所有的域都需要独立的域访问器和域修改器
5.将职责过多的类进行分解
6.类名方法名要能体现它们额职责(名词/adj+n/-ing+n,get…,set…)
7.优先使用不可变的类(类中状态不可修改,修改方法返回的是新对象而不是被修改的原对象)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值