1
OOP中,不必关心对象的具体实现,只要能满足用户的需求即可;
算法+数据结构 = 程序 先确定如何操作程序再决定如何组织程序
类与类之间的关系:
依赖(use-a)聚合(has-a)继承(is-a)
将方法用于值为null的对象上会出错
LocalData
package learning;
import java.time.*;
public class learn {
public static void main(String[] args){
LocalDate local = LocalDate.now();
int month =local.getMonthValue();
int today =local.getDayOfMonth();
local=local.minusDays(today-1);
DayOfWeek weekday =local.getDayOfWeek();
int value = weekday.getValue();
System.out.println("Mon Tue Wed Thu Fri Sat Sun");
for(int i=1;i<value;i++){
System.out.print(" ");
}
while(local.getMonthValue()==month){
System.out.printf("%3d",local.getDayOfMonth());
if(local.getDayOfMonth()==today){
System.out.print("*");
}else
System.out.print(" ");
local=local.plusDays(1);
if(local.getDayOfWeek().getValue()==1) System.out.println();
}
if(local.getDayOfWeek().getValue()!=1) System.out.println();
}
}
访问器法
只访问对象而不修改对象的方法;
类
在一个源文件中只能有一个公有类,有任意数目的非公有类
静态方法没有this参数(一个非静态方法中this表示隐式参数),不能访问实例;
工厂方法:
main方法不对任何对象进行操作,实际上启动程序时还没有任何对象
参数
Java方法采用按值调用
构造器
显式域初始化
字段可以自己初始化为常量 ,也可以调用方法;
可以静态初始化块
用this(…)将调用另一个类的另一个构造器
Rondom
包
标准的JAVA类库分布在多个包中 包括 java.lang java.util java.net
一个类可以使用所属包的所有类,以及其它包中的公有类
静态导入
import static java.lang.System.* 就不需要类的前缀名
out.println();
将类放入包中
将类放入包中 把包的名字放在源文件的开头
注释
类注释 放在import语句后 类定义前;
/**
*…
*…
*/
方法注释:方法注释方法前
@param变量描述
@return 描述
@throw类描述
通用注释
@author姓名
@version 文本
@since 始于
@desprecated 文本 标记对类、方法、变量不再使用的注释
@see 引用链接 用#分割类名和包名 有<是超链接