2018-2019-2 20189205《移動平臺應用開發實踐》第四周做業

JAVA學習

枚舉

Java中提供了enum類用以進行枚舉。其定義方法以下,每一個枚舉類型間使用逗號隔開:java

public enum Color{
    RED,
    BULE,
    BLACK,
    GREEN
}

在定義了枚舉類以後便可在類中使用,其使用方法以下:程序員

public class Flower {
    public String fName;
    public Color color;
}

在使用類時經過以下方法定義enum變量:算法

Flower flower = new Flower();
flower.color = Color.RED;

遍歷枚舉值

在enum類中定義了values方法用於遍歷枚舉值,同時可在vlaues方法的返回對象上調用nameordinal方法獲取實例的名稱和排序值。
以下所示,經過for-each循環進行遍歷:數組

for (Color color : Color.values() ) {
    System.out.printIn("ordianl" + flower.ordinal() + "\t" + flower.name);
}

switch

enum枚舉值一樣能夠運用在switch語句中,例如:安全

Flower flower = new Flower();
flower.color = Color.RED;

switch (flower.color) {
    case RED:
        System.out.printIn("The Color Of  The Flower Is Red";
        break;
    case BLUE:
        System.out.printIn("The Color Of  The Flower Is Blue";
        break;
    case BLACK:
        System.out.printIn("The Color Of  The Flower Is Black";
        break;
    case GREEN:
        System.out.printIn("The Color Of  The Flower Is Green";
        break;
}

日期和時間

JDK1.8定義了java.time包來對時間和日期進行操做。數據結構

Instant類

Instant對象表示時間線上的一個時間點,經過靜態方法now來建立:架構

Instant now = Instant.now();

LocalDate類

LocalDate類表示了不帶時區的日期。其方法有:
1 getYear() 獲取當前日期的年份
2 getMonth()    獲取當前日期的月份對象
3 getMonthValue()   獲取當前日期是第幾月
4 getDayOfWeek()  表示該對象表示的日期是星期幾
5 getDayOfMonth()   表示該對象表示的日期是這個月第幾天
6 getDayOfYear()    表示該對象表示的日期是今年第幾天
7 withYear(int year)    修改當前對象的年份
8 withMonth(int month)   修改當前對象的月份
9 withDayOfMonth(int dayOfMonth)    修改當前對象在當月的日期
10 isLeapYear()    是不是閏年
11 lengthOfMonth()    這個月有多少天
12 lengthOfYear()    該對象表示的年份有多少天(365或者366)
13 plusYears(long yearsToAdd)    相對當前對象增長指定的年份數
14 minusYears(long yearsToSubtract) 相對當前對象減去指定的年數
15 plusMonths(long monthsToAdd)    相對當前對象增長指定的月份數
16 minusMonths(long monthsToSubtract) 相對當前對象減去註定的月數
17 plusWeeks(long weeksToAdd)   相對當前對象增長指定的週數
18 minusWeeks(long weeksToSubtract) 相對當前對象減去指定的週數
19 plusDays(long daysToAdd)    相對當前對象增長指定的天數
20 minusDays(long daysToSubtract)    相對當前對象減去指定的天數
21 compareTo(ChronoLocalDate other)    比較當前對象和other對象在時間上的大小,返回值若是爲正,則當前對象時間較晚,
22 isBefore(ChronoLocalDate other)    比較當前對象日期是否在other對象日期以前
23 isAfter(ChronoLocalDate other)    比較當前對象日期是否在other對象日期以後
24 isEqual(ChronoLocalDate other)    比較兩個日期對象是否相等
25 now() 返回今天的日期
26 of(int year, int month, int dayOfMonth) 建立指定日期的對象框架

Period類

Period類表示了一個基於日期的時間量,經常用於表示日期間的間隔。其方法有:
1 between() 建立兩個LocalDate對象之間日期的Period對象
2 of() 建立指定時間的Period對象
3 ofDays() 建立指定天數的Period對象
4 ofWeeks() 建立指定週數的Period對象
5 ofMonths() 建立指定月數的Period對象
6 ofYears() 建立指定年數的Period對象
7 getDays() 獲取Period對象的天數
8 getMonths() 獲取Period對象的月數
9 getYears() 獲取Period對象的年數性能

LocalDateTime類

LocalDateTime類表示一個沒有時區的日期和時間。其主要方法和LocalDate類類似,只是增長了對HoursMinutesSeconds的操做。學習

ZonedDateTime類

ZonedDateTime類表示一個有時區的日期和時間。其主要方法和LocalDateTime類類似,不過增長了getZoned() 方法獲取時區。

Duration類

Duration類表示了一個基於時間的時間段,與Period類類似,不過期間部分精確到了納秒級,而且考慮到了ZonedDateTimes之間的時區。

DateTimeFormat類

DateTimeFormat類提供了format方法來格式化一個本地日期時間或帶時區的日期時間。

集合框架

集合框架是一個用來表明和操縱集合的統一架構。全部的集合框架都包含以下內容:

  • 接口:是表明集合的抽象數據類型。例如 Collection、List、Set、Map 等。之因此定義多個接口,是爲了以不一樣的方式操做集合對象
  • 實現(類):是集合接口的具體實現。從本質上講,它們是可重複使用的數據結構,例如:ArrayList、LinkedList、HashSet、HashMap。
  • 算法:是實現集合接口的對象裏的方法執行的一些有用的計算,例如:搜索和排序。這些算法被稱爲多態,那是由於相同的方法能夠在類似的接口上有着不一樣的實現。
    除了集合,該框架也定義了幾個 Map 接口和類。Map 裏存儲的是鍵/值對。儘管 Map 不是集合,可是它們徹底整合在集合中。

集合框架被設計成要知足如下幾個目標。

  • 該框架必須是高性能的。基本集合(動態數組,鏈表,樹,哈希表)的實現也必須是高效的。
  • 該框架容許不一樣類型的集合,以相似的方式工做,具備高度的互操做性。
  • 對一個集合的擴展和適應必須是簡單的。
    爲此,整個集合框架就圍繞一組標準接口而設計,能夠直接使用這些接口的標準實現。集合框架定義了以下接口:

1 Collection 接口

  • Collection 是最基本的集合接口,一個 Collection 表明一組 Object,即 Collection 的元素, Java不提供直接繼承自Collection的類,只提供繼承於的子接口(如List和set)。
  • Collection 接口存儲一組不惟一,無序的對象。

2 List 接口

  • List接口是一個有序的 Collection,使用此接口可以精確的控制每一個元素插入的位置,可以經過索引(元素在List中位置,相似於數組的下標)來訪問List中的元素,第一個元素的索引爲 0,並且容許有相同的元素。
  • List 接口存儲一組不惟一,有序(插入順序)的對象。

3 Set

  • Set 具備與 Collection 徹底同樣的接口,只是行爲上不一樣,Set 不保存重複的元素。
  • Set 接口存儲一組惟一,無序的對象。

4 SortedSet

  • 繼承於Set保存有序的集合。

5 Map

  • Map 接口存儲一組鍵值對象,提供key(鍵)到value(值)的映射。

6 Map.Entry

  • 描述在一個Map中的一個元素(鍵/值對)。是一個Map的內部類。

7 SortedMap

  • 繼承於 Map,使 Key 保持在升序排列。

8 Enumeration

  • 這是一個傳統的接口和定義的方法,經過它能夠枚舉(一次得到一個)對象集合中的元素。這個傳統接口已被迭代器取代。

泛型

Java泛型(generics)是 JDK 5 中引入的一個新特性, 泛型提供了編譯時類型安全檢測機制,該機制容許程序員在編譯時檢測到非法的類型。
泛型的本質是參數化類型,也就是說所操做的數據類型被指定爲一個參數。

泛型方法

定義一個泛型方法,該方法在調用時能夠接收不一樣類型的參數。根據傳遞給泛型方法的參數類型,編譯器適當地處理每個方法調用。
下面是定義泛型方法的規則:

  • 全部泛型方法聲明都有一個類型參數聲明部分(由尖括號分隔),該類型參數聲明部分在方法返回類型以前(在下面例子中的 )。
  • 每個類型參數聲明部分包含一個或多個類型參數,參數間用逗號隔開。一個泛型參數,也被稱爲一個類型變量,是用於指定一個泛型類型名稱的標識符。
  • 類型參數能被用來聲明返回值類型,而且能做爲泛型方法獲得的實際參數類型的佔位符。
  • 泛型方法體的聲明和其餘方法同樣。注意類型參數只能表明引用型類型,不能是原始類型(像int,double,char的等)。

泛型類型

泛型類型的聲明和非泛型類的聲明相似,除了在類名後面添加了類型參數聲明部分。 和泛型方法同樣,泛型類的類型參數聲明部分也包含一個或多個類型參數,參數間用逗號隔開。一個泛型參數,也被稱爲一個類型變量,是用於指定一個泛型類型名稱的標識符。由於他們接受一個或多個參數,這些類被稱爲參數化的類或參數化的類型。

相關文章
相關標籤/搜索