1. Object类
特点:
1. 是类层次的根类. 每个类都(直接或间接地)使用Object类作为父类
2. 所有类的对象都可以使用Object类中定义的方法
public String toString() :返回该对象的字符串表示
重写toString作用:
任何类的对象都可调用 toString(), 得到一个对象的字符串表示形式, 默认使用Object类中定义的方式
如果不想使用默认方式, 子类可以重写toString()方法, 转换为自己想要的内容
boolean equals(Object obj) :指示其他某个对象是否与此对象"相等"
重写equals()的作用:
不重写时, 自定义对象默认继承Object类的equals()方法, 通过 == 比较地址值
但开发时, 一般要重写equals()方法, 让对象"根据属性值"来判断是否相等
重写toString和equals都用快捷键: Alt+Insert
2.1Date类
public Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
创建日期对象,把当前的时间 new Date()
无参构造
创建日期对象,把当前的毫秒值转成日期对象 new Date(0L)
有参构造
:在使用println方法时,会自动调用Date类中的toString方法
2.2DateFormat类
将Date对象格式化为字符串:
创建date
Date date = new Date();
创建SimpleDateFormat对象:
DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
将Date对象格式化为字符串:
String str = df.format(date);
System.out.println(str)
把String转换成Date对象:
DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
String str = "2018年12月11日";
Date date = df.parse(str);
System.out.println(date);
2.3Calendar类
Calendar cal = Calendar.getInstance();
常用方法
public int get(int field):返回给定日历字段的值。
public void set(int field, int value):将给定的日历字段设置为给定值。
public abstract void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
获取
[AppleScript] 纯文本查看 复制代码
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
System.out.print(year + "年" + month + "月" + dayOfMonth + "日");
设置
cal.set(Calendar.YEAR, 2020);
加2天
cal.add(Calendar.DAY_OF_MONTH, 2);
减3年
cal.add(Calendar.YEAR, -3);
get time
Date date = cal.getTime();
System.out.println(date); // Tue Jan 16 16:03:09 CST 2018
3.System类: currentTimeMillis()和arrayCopy()方法
静态方法
[AppleScript] 纯文本查看 复制代码
static long currentTimeMillis(): 返回当前系统时间的毫秒值
long start = System.currentTimeMillis();
static void arrayCopy(Object src, int srcPos, Object dest, int destPos, int length): 复制源数组中指定长度个元素到一个新数组中
4.append方法
append方法具有多种重载形式,可以接收任意类型的参数。任何数据作为参数都会将对应的字符串内容添加到StringBuilder中。
StringBuilder builder = new StringBuilder(任何类型);
builder.append("hello").append("world").append(true).append(100);链式编程
toString方法
通过toString方法,StringBuilder对象将会转换为不可变的String对象。
5.基本类型与字符串之间的转换
String转换成对应的基本类型
[Java] 纯文本查看 复制代码
int num = Integer.parseInt("100");
parseByte,parseShort,parseLong,parseFloat,parseDouble,parseLong
6.1java.util.Collection<E>接口:
// 成员方法(子类都会实现)
boolean?add(E?e): 把给定的对象添加到当前集合中
void?clear(): 清空集合中所有的元素
boolean?remove(E?e): 把给定的对象在当前集合中删除
boolean?contains(E?e): 判断当前集合中是否包含给定的对象
boolean?isEmpty(): 判断当前集合是否为空(没有元素)
Collection<String> coll = new ArrayList<String>();
coll.add("啦啦啦");
coll.contains("啦啦啦");
6.2java.util.Iterator<E>接口: 迭代器
// 成员方法
boolean hasNext(): 判断是否有下一个元素
E next(): 获取下一个元素
void remove(): 删除调用完next()指向的元素
例如:
Iterator<String> it = coll.iterator();
// 泛型指的是 迭代出 元素的数据类型
while(it.hasNext()){ //判断是否有迭代元素
String s = it.next();//获取迭代出的元素
System.out.println(s);
7.泛型
定义和使用含有泛型的类:
public class leiming<E>{ }泛型写在类名后面
在测试类中 创建对象的时候确定类型 类名类名<String> lm=new leiming<>();
定义含有泛型的方法:
泛型定义在方法修饰符和返回值类型之间;
格式:修饰符<泛型>返回值类型 方法名(参数列表(使用泛型)){}
含有泛型的方法在
调用方法的时候确定泛型的数据类型
传递什么类型的参数泛型就是什么类型
public<M>void method(M m){ }
测试类 创建对象后 调用方法 对象名
.method(传递不同类型的参数)
含有泛型的静态方法:
public static<S> void method2(S s){ }
静态方法通过
类名.方法名(数据类型)
定义和含有泛型的接口
含有接口的泛型第一种使用方式:定义接口的实现类,确定接口的泛型.
[AppleScript] 纯文本查看 复制代码
public interface leiming<I>{
publi abstract void method(I i);
}
定义接口实现类:public class shixianlei implements leiming<String>{
@override
public void method(String s) {
}
}
含有接口的泛型第二种使用方式:接口使用什么泛型实现类就用什么泛型,创建对象
时确定泛型类型
[AppleScript] 纯文本查看 复制代码
接口:public interface leiming<I>{
publi abstract void method(I i);
}
实现类:public class shixianle<I>i implements leiming<I>{
@override
public void method(I i) {
}
}
测试类创建对象确定泛型数据类型:
shixianlei<Integer> sx=new shixianlei<>();
sx.method(10)
7.2通配符基本使用
泛型的通配符:不知道使用什么类型来接收的时候,此时可以使用?,?表示未知通配符。
此时只能接受数据,不能往该集合中存储数据。
[Java] 纯文本查看 复制代码
public static void main(String[] args) {
Collection<Intger> list1 = new ArrayList<Integer>();
getElement(list1);
Collection<String> list2 = new ArrayList<String>();
getElement(list2);
}
public static void getElement(Collection<?> coll){}