黑马程序员技术交流社区

标题: 【石家庄校区】Object [打印本页]

作者: GIAO    时间: 2018-11-14 16:09
标题: 【石家庄校区】Object
本帖最后由 小石姐姐 于 2018-11-16 13:08 编辑

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){}


作者: GIAO    时间: 2018-11-14 17:13
嚯,写的真好




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2