最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java類的定義以及執(zhí)行順序?qū)W習(xí)教程

 更新時(shí)間:2015年09月26日 08:45:29   投稿:goldensun  
這篇文章主要介紹了Java類的定義以及執(zhí)行順序?qū)W習(xí)教程,包括對(duì)象的創(chuàng)建等面向?qū)ο缶幊痰幕A(chǔ)知識(shí),需要的朋友可以參考下

類必須先定義才能使用。類是創(chuàng)建對(duì)象的模板,創(chuàng)建對(duì)象也叫類的實(shí)例化。

下面通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)理解Java中類的定義:

public class Dog{
  String name;
  int age;
  
  void bark(){ // 汪汪叫
    System.out.println("汪汪,不要過(guò)來(lái)");
  }
 
  void hungry(){ // 饑餓
    System.out.println("主人,我餓了");
  }
}


對(duì)示例的說(shuō)明:

public 是類的修飾符,表明該類是公共類,可以被其他類訪問(wèn)。修飾符將在下節(jié)講解。
class 是定義類的關(guān)鍵字。
Dog 是類名稱。
name、age 是類的成員變量,也叫屬性;bark()、hungry() 是類中的函數(shù),也叫方法。

一個(gè)類可以包含以下類型變量:

  • 局部變量:在方法或者語(yǔ)句塊中定義的變量被稱為局部變量。變量聲明和初始化都是在方法中,方法結(jié)束后,變量就會(huì)自動(dòng)銷毀。
  • 成員變量:成員變量是定義在類中、方法體之外的變量。這種變量在創(chuàng)建對(duì)象的時(shí)候?qū)嵗ǚ峙鋬?nèi)存)。成員變量可以被類中的方法和特定類的語(yǔ)句訪問(wèn)。
  • 類變量:類變量也聲明在類中,方法體之外,但必須聲明為static類型。static 也是修飾符的一種,將在下節(jié)講解。

構(gòu)造方法

在類實(shí)例化的過(guò)程中自動(dòng)執(zhí)行的方法叫做構(gòu)造方法,它不需要你手動(dòng)調(diào)用。構(gòu)造方法可以在類實(shí)例化的過(guò)程中做一些初始化的工作。

構(gòu)造方法的名稱必須與類的名稱相同,并且沒(méi)有返回值。

每個(gè)類都有構(gòu)造方法。如果沒(méi)有顯式地為類定義構(gòu)造方法,Java編譯器將會(huì)為該類提供一個(gè)默認(rèn)的構(gòu)造方法。

下面是一個(gè)構(gòu)造方法示例:

public class Dog{
  String name;
  int age;
  
  // 構(gòu)造方法,沒(méi)有返回值
  Dog(String name1, int age1){
    name = name1;
    age = age1;
    System.out.println("感謝主人領(lǐng)養(yǎng)了我");
  }
  
  // 普通方法,必須有返回值
  void bark(){
    System.out.println("汪汪,不要過(guò)來(lái)");
  }
 
  void hungry(){
    System.out.println("主人,我餓了");
  }
  
  public static void main(String arg[]){
    // 創(chuàng)建對(duì)象時(shí)傳遞的參數(shù)要與構(gòu)造方法參數(shù)列表對(duì)應(yīng)
    Dog myDog = new Dog("花花", 3);
  }
}

運(yùn)行結(jié)果:

感謝主人領(lǐng)養(yǎng)了我

說(shuō)明:

  • 構(gòu)造方法不能被顯示調(diào)用。
  • 構(gòu)造方法不能有返回值,因?yàn)闆](méi)有變量來(lái)接收返回值。

創(chuàng)建對(duì)象

對(duì)象是類的一個(gè)實(shí)例,創(chuàng)建對(duì)象的過(guò)程也叫類的實(shí)例化。對(duì)象是以類為模板來(lái)創(chuàng)建的。

在Java中,使用new關(guān)鍵字來(lái)創(chuàng)建對(duì)象,一般有以下三個(gè)步驟:
聲明:聲明一個(gè)對(duì)象,包括對(duì)象名稱和對(duì)象類型。
實(shí)例化:使用關(guān)鍵字new來(lái)創(chuàng)建一個(gè)對(duì)象。
初始化:使用new創(chuàng)建對(duì)象時(shí),會(huì)調(diào)用構(gòu)造方法初始化對(duì)象。

例如:

Dog myDog; // 聲明一個(gè)對(duì)象
myDog = new Dog("花花", 3); // 實(shí)例化


也可以在聲明的同時(shí)進(jìn)行初始化:

Dog myDog = new Dog("花花", 3);


訪問(wèn)成員變量和方法

通過(guò)已創(chuàng)建的對(duì)象來(lái)訪問(wèn)成員變量和成員方法,例如:

// 實(shí)例化
Dog myDog = new Dog("花花", 3);
// 通過(guò)點(diǎn)號(hào)訪問(wèn)成員變量
myDog.name;
// 通過(guò)點(diǎn)號(hào)訪問(wèn)成員方法
myDog.bark();

下面的例子演示了如何訪問(wèn)成員變量和方法:

public class Dog{
  String name;
  int age;
  
  Dog(String name1, int age1){
    name = name1;
    age = age1;
    System.out.println("感謝主人領(lǐng)養(yǎng)了我");
  }
  
  void bark(){
    System.out.println("汪汪,不要過(guò)來(lái)");
  }
 
  void hungry(){
    System.out.println("主人,我餓了");
  }
  
  public static void main(String arg[]){
    Dog myDog = new Dog("花花", 3);
    // 訪問(wèn)成員變量
    String name = myDog.name;
    int age = myDog.age;
    System.out.println("我是一只小狗,我名字叫" + name + ",我" + age + "歲了");
    // 訪問(wèn)方法
    myDog.bark();
    myDog.hungry();
  }
}

運(yùn)行結(jié)果:

感謝主人領(lǐng)養(yǎng)了我
我是一只小狗,我名字叫花花,我3歲了
汪汪,不要過(guò)來(lái)
主人,我餓了

Java類的基本運(yùn)行順序
我們以下面的類來(lái)說(shuō)明一個(gè)基本的 Java 類的運(yùn)行順序:

public class Demo{
  private String name;
  private int age;
  public Demo(){
    name = "微學(xué)苑";
    age = 3;
  }
  public static void main(String[] args){
    Demo obj = new Demo();
    System.out.println(obj.name + "的年齡是" + obj.age);
  }
}

基本運(yùn)行順序是:

  • 先運(yùn)行到第 9 行,這是程序的入口。
  • 然后運(yùn)行到第 10 行,這里要 new 一個(gè)Demo,就要調(diào)用 Demo 的構(gòu)造方法。
  • 就運(yùn)行到第 5 行,注意:可能很多人覺(jué)得接下來(lái)就應(yīng)該運(yùn)行第 6 行了,錯(cuò)!初始化一個(gè)類,必須先初始化它的屬性。
  • 因此運(yùn)行到第 2 行,然后是第 3 行。
  • 屬性初始化完過(guò)后,才回到構(gòu)造方法,執(zhí)行里面的代碼,也就是第 6 行、第 7 行。
  • 然后是第8行,表示 new 一個(gè)Demo實(shí)例完成。
  • 然后回到 main 方法中執(zhí)行第 11 行。
  • 然后是第 12 行,main方法執(zhí)行完畢。

作為程序員,應(yīng)該清楚程序的基本運(yùn)行過(guò)程,否則糊里糊涂的,不利于編寫代碼,也不利于技術(shù)上的發(fā)展。

相關(guān)文章

  • Java實(shí)現(xiàn)快速排序算法可視化的示例代碼

    Java實(shí)現(xiàn)快速排序算法可視化的示例代碼

    快速排序算法通過(guò)多次比較和交換來(lái)實(shí)現(xiàn)排序,是對(duì)冒泡排序算法的一種改進(jìn)。本文將用Java語(yǔ)言實(shí)現(xiàn)快速排序算法并進(jìn)行可視化,感興趣的可以了解一下
    2022-08-08
  • 一篇文章詳解JAVA遠(yuǎn)程debug

    一篇文章詳解JAVA遠(yuǎn)程debug

    這篇文章主要給大家介紹了關(guān)于JAVA遠(yuǎn)程debug的相關(guān)資料,日常我們debug是經(jīng)常用的,但是本地還好說(shuō),遠(yuǎn)程debug就有點(diǎn)難度,需要的朋友可以參考下
    2023-08-08
  • 手工搭建Servlet實(shí)現(xiàn)

    手工搭建Servlet實(shí)現(xiàn)

    現(xiàn)在作為一個(gè)Java程序員,我們已經(jīng)習(xí)慣了使用IDE和Web框架進(jìn)行開發(fā),IDE幫助我們做了編譯、打包的工作。Spring框架則幫助我們實(shí)現(xiàn)了Servlet接口,并把Servlet容器注冊(cè)到了Web容器中。本文主要介紹了Servlet手工搭建,感興趣的可以了解一下
    2021-07-07
  • 基于Spring Data的AuditorAware審計(jì)功能的示例代碼

    基于Spring Data的AuditorAware審計(jì)功能的示例代碼

    這篇文章主要介紹了基于Spring Data的AuditorAware審計(jì)功能的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • java 輸入3個(gè)數(shù)a,b,c,按大小順序輸出的實(shí)例講解

    java 輸入3個(gè)數(shù)a,b,c,按大小順序輸出的實(shí)例講解

    今天小編就為大家分享一篇java 輸入3個(gè)數(shù)a,b,c,按大小順序輸出的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 關(guān)于SpringBoot大文件RestTemplate下載解決方案

    關(guān)于SpringBoot大文件RestTemplate下載解決方案

    這篇文章主要介紹了SpringBoot大文件RestTemplate下載解決方案,最近結(jié)合網(wǎng)上案例及自己總結(jié),寫了一個(gè)分片下載tuling/fileServer項(xiàng)目,需要的朋友可以參考下
    2021-10-10
  • SpringBoot在啟動(dòng)類main方法中調(diào)用service層方法報(bào)“空指針異?!暗慕鉀Q辦法

    SpringBoot在啟動(dòng)類main方法中調(diào)用service層方法報(bào)“空指針異?!暗慕鉀Q辦法

    這篇文章主要介紹了SpringBoot在啟動(dòng)類main方法中調(diào)用service層方法報(bào)“空指針異?!暗慕鉀Q辦法,大多數(shù)情況下,我們使用Springboot是創(chuàng)建一個(gè)maven項(xiàng)目,然后通過(guò)controller層的接口調(diào)用,但也有特殊情況,文章介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • Josephus環(huán)的四種解法(約瑟夫環(huán))基于java詳解

    Josephus環(huán)的四種解法(約瑟夫環(huán))基于java詳解

    這篇文章主要介紹了Josephus環(huán)的四種解法(約瑟夫環(huán))基于java詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • SpringBoot事務(wù)使用及回滾實(shí)現(xiàn)代碼詳解

    SpringBoot事務(wù)使用及回滾實(shí)現(xiàn)代碼詳解

    這篇文章主要介紹了SpringBoot事務(wù)使用及回滾實(shí)現(xiàn)代碼詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 使用JDBC連接Mysql 8.0.11出現(xiàn)了各種錯(cuò)誤的解決

    使用JDBC連接Mysql 8.0.11出現(xiàn)了各種錯(cuò)誤的解決

    這篇文章主要介紹了使用JDBC連接Mysql 8.0.11出現(xiàn)了各種錯(cuò)誤的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08

最新評(píng)論

台南市| 和静县| 南陵县| 桃江县| 西和县| 喀什市| 江山市| 西和县| 和静县| 隆尧县| 博爱县| 太仓市| 米林县| 尚义县| 略阳县| 班戈县| 乐业县| 全椒县| 阳东县| 芦溪县| 米泉市| 中卫市| 莱州市| 芒康县| 淮安市| 孙吴县| 龙泉市| 靖安县| 黄大仙区| 呼和浩特市| 道孚县| 乌拉特中旗| 海城市| 牟定县| 和田县| 西吉县| 东乌珠穆沁旗| 屯门区| 南郑县| 北川| 从江县|