欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于在Java中使用預(yù)定義類

 更新時間:2023年05月15日 09:04:24   作者:夏志121  
這篇文章主要介紹了關(guān)于在Java中使用預(yù)定義類,預(yù)定義類就是Java類庫(或第三方庫)中已經(jīng)定義好的類,例如,Math 類和 Date 類,需要的朋友可以參考下

在Java中,沒有類就無法做任何事情。然而,并不是所有的類都表現(xiàn)出面向?qū)ο蟮牡湫吞卣鳌R?strong>Math.Random為例,我們不必具體了解如何實現(xiàn)的,只需要方法名和參數(shù)。這正是封裝的關(guān)鍵所在。Math類只封裝了功能,所以不需要隱藏數(shù)據(jù)。由于沒有數(shù)據(jù),因此不必考慮創(chuàng)建對象和初始化它們的實例字段,因為根本沒有實例字段。

一、對象與對象變量

要使用對象首先必須構(gòu)造對象,并指定其初始化狀態(tài),然后對對象應(yīng)用方法。

在Java中,要使用構(gòu)造器(constructor,或稱構(gòu)造函數(shù))構(gòu)造新實例。構(gòu)造器是一種特殊的方法,其作用是構(gòu)造并初始化對象。

構(gòu)造器總是與類名同名。因此,Date類的構(gòu)造器就名為Date。要想構(gòu)造一個Date對象,需要在構(gòu)造器前面加上new操作符。如下例子:

new Date()

這個表達式會構(gòu)造一個新對象。這個對象初始化為當(dāng)前的日期和時間。

如果需要,可以將這個對象傳遞給一個方法

System.out.println(new Date());

或者對剛構(gòu)造的對象應(yīng)用一個方法。Date類中有一個toString方法。這個方法將生成日期的一個字符串描述,可以如下對Date對象應(yīng)用toString方法:

String s = new Date().toString();

上面兩個例子,構(gòu)造對象僅使用了一次。通常,你可能希望保留所構(gòu)造的對象從而能繼續(xù)使用,為此,需要將對象存放值一個變量中:

Date rightNow = new Date();

對象和對象變量存在一個重要的區(qū)別,例如:

Date startTime;
s = startTime.toString(); //not yet

上例定義了一個對象變量startTime,它可以引用Date類型的變量。但是,startTime不是一個對象,而且實際上它甚至還沒有引用任何對象,所以不能在這個變量上用任何Date方法,將會產(chǎn)生編譯錯誤。

必須初始化startTime變量,讓它引用一個新構(gòu)造的對象:

startTime = new Date();

也可以設(shè)置這個變量,讓它引用一個已有的對象:

startTime = rightNow;

重要的一點:對象變量并不實際包含一個對象,它只是引用一個對象

在Java中,任何對象變量的值都是一個引用,指向存儲在另外一個地方的某個對象。

二、Java類庫中的LocalDate類

標(biāo)準(zhǔn)Java類庫分別包含了兩個類:一個是用來表示時間點的Date類;另一個是用大家熟悉的日歷表示法表示日期的LocalDate類。將時間度量與日歷分開是一種很好的面向?qū)ο笤O(shè)計。

不要使用構(gòu)造器來構(gòu)造LocalDate對象。應(yīng)用使用靜態(tài)工廠方法(factory method),它會代表你調(diào)用的構(gòu)造器,下面式表達式:

LocalDate.now()

上例會構(gòu)造一個新對象,表示構(gòu)造這個對象時的日期。

可以提供年、月、日來構(gòu)造對應(yīng)一個特定日期的對象,并保存在一個對象變量中:

LocalDate newYearEve = LocalDate.of(2020,2,2)

也可以使用plusDays方法,把應(yīng)用這個方法的對象稱為當(dāng)前對象,那么這個新日期對象則是距當(dāng)前對象指定天數(shù)的一個新日期:

LocalDate aThousandDaysLater = newYearsEve.plusDays(1000);
int year = aThousandDays.getYear();
int month = aThousanDays.getMonthValue();
int day = aThousanDays.getDayOfMonth();

LocalDate類封裝了一些實例字段來維護所設(shè)置的日期。

三、更改器方法與訪問器方法

Java庫較早版本曾經(jīng)有另一個處理日歷的類,名為GregorianCalender。如下這個類表示的是一個日期增加1000天:

GregorianCalendar someDay = new GregorianCalendar(1999,11,31);
someDay.add(Calender.DAY_OF_MONTH,1000);

LocalDate.plusDays方法不同,GregorianCalendar.add方法是一個更改器方法(mutator method)。調(diào)用這個方法后,someDay對象的狀態(tài)會改變。

相反,只訪問對象而不修改對象的方法有時稱為訪問器方法(accessor method)。例如,LocalDate.getYear和GregorianCalender.get就是訪問器方法。

使用LocalDate類顯示當(dāng)前月的日歷:

import java.time.DayOfWeek;
import java.time.LocalDate;
public class CalendarTest {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now();
        int month = date.getMonthValue();
        int today = date.getDayOfMonth();
        date = date.minusDays(today - 1);
        DayOfWeek weekday = date.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 (date.getMonthValue() == month){
            System.out.printf("%3d",date.getDayOfMonth());
            if(date.getDayOfMonth() == today){
                System.out.print("*");
            }else {
                System.out.print(" ");
            }
            date = date.plusDays(1);
            if(date.getDayOfWeek().getValue() == 1){
                System.out.println();
            }
        }
        if(date.getDayOfWeek().getValue()!=1){
            System.out.println();
        }
    }
}

執(zhí)行結(jié)果:

java.time.LocalDate API:

  • static LocalDate now()

構(gòu)造一個表示當(dāng)前日期的對象

  • static LocalDate of(int year, int month, int day)

構(gòu)造一個表示給定日期的對象

  • int getYear()
  • int getMonthValue()
  • int getDayOfMonth()

得到當(dāng)前日期的年、月和日

  • DayOfWeek getDayOfWeek()

得到當(dāng)前日期是星期幾,作為DayOfWeek類的一個實例返回。在DayOfWeek實例上調(diào)用getValue來得到1-7之間的一個數(shù),表示這是返回的星期幾,1表示星期一,7表示星期日

  • LocalDate plusDays(int n)
  • LocalDate minusDays(int n)

生成當(dāng)前日期之后或之前n天的日期

到此這篇關(guān)于關(guān)于在Java中使用預(yù)定義類的文章就介紹到這了,更多相關(guān)Java預(yù)定義類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot中實現(xiàn)@Scheduled動態(tài)定時任務(wù)

    SpringBoot中實現(xiàn)@Scheduled動態(tài)定時任務(wù)

    SpringBoot中的@Scheduled注解為定時任務(wù)提供了一種很簡單的實現(xiàn),本文主要介紹了SpringBoot中實現(xiàn)@Scheduled動態(tài)定時任務(wù),具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Jenkins插件pipeline原理及使用方法解析

    Jenkins插件pipeline原理及使用方法解析

    這篇文章主要介紹了Jenkins插件pipeline原理及使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • 聊聊SpringCloud和SpringCloudAlibaba的區(qū)別

    聊聊SpringCloud和SpringCloudAlibaba的區(qū)別

    這篇文章主要介紹了SpringCloud和SpringCloudAlibaba的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 使用JMeter進行接口高并發(fā)測試的實現(xiàn)

    使用JMeter進行接口高并發(fā)測試的實現(xiàn)

    本文主要介紹了使用JMeter進行接口高并發(fā)測試的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • 新手入門學(xué)習(xí)Spring Freemarker教程解析

    新手入門學(xué)習(xí)Spring Freemarker教程解析

    這篇文章主要介紹了新手入門學(xué)習(xí)Freemarker教程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • Java多線程模擬電影售票過程

    Java多線程模擬電影售票過程

    這篇文章主要為大家詳細介紹了Java多線程模擬電影售票過程,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • java實現(xiàn)微信公眾號發(fā)送模版消息

    java實現(xiàn)微信公眾號發(fā)送模版消息

    這篇文章以訂單推送為例,主要為大家詳細介紹了java實現(xiàn)微信公眾號發(fā)送模版消息,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 基于SSM框架之個人相冊示例代碼

    基于SSM框架之個人相冊示例代碼

    本篇文章主要介紹了基于SSM框架之個人相冊示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • 淺談java+內(nèi)存分配及變量存儲位置的區(qū)別

    淺談java+內(nèi)存分配及變量存儲位置的區(qū)別

    下面小編就為大家?guī)硪黄獪\談java+內(nèi)存分配及變量存儲位置的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • Spring @Conditional注解原理解析

    Spring @Conditional注解原理解析

    這篇文章主要介紹了Spring @Conditional注解原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11

最新評論