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

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

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

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

下面通過一個簡單的例子來理解Java中類的定義:

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


對示例的說明:

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

一個類可以包含以下類型變量:

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

構(gòu)造方法

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

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

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

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

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

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

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

說明:

  • 構(gòu)造方法不能被顯示調(diào)用。
  • 構(gòu)造方法不能有返回值,因為沒有變量來接收返回值。

創(chuàng)建對象

對象是類的一個實例,創(chuàng)建對象的過程也叫類的實例化。對象是以類為模板來創(chuàng)建的。

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

例如:

Dog myDog; // 聲明一個對象
myDog = new Dog("花花", 3); // 實例化


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

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


訪問成員變量和方法

通過已創(chuàng)建的對象來訪問成員變量和成員方法,例如:

// 實例化
Dog myDog = new Dog("花花", 3);
// 通過點號訪問成員變量
myDog.name;
// 通過點號訪問成員方法
myDog.bark();

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

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("汪汪,不要過來");
  }
 
  void hungry(){
    System.out.println("主人,我餓了");
  }
  
  public static void main(String arg[]){
    Dog myDog = new Dog("花花", 3);
    // 訪問成員變量
    String name = myDog.name;
    int age = myDog.age;
    System.out.println("我是一只小狗,我名字叫" + name + ",我" + age + "歲了");
    // 訪問方法
    myDog.bark();
    myDog.hungry();
  }
}

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

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

Java類的基本運(yùn)行順序
我們以下面的類來說明一個基本的 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 一個Demo,就要調(diào)用 Demo 的構(gòu)造方法。
  • 就運(yùn)行到第 5 行,注意:可能很多人覺得接下來就應(yīng)該運(yùn)行第 6 行了,錯!初始化一個類,必須先初始化它的屬性。
  • 因此運(yùn)行到第 2 行,然后是第 3 行。
  • 屬性初始化完過后,才回到構(gòu)造方法,執(zhí)行里面的代碼,也就是第 6 行、第 7 行。
  • 然后是第8行,表示 new 一個Demo實例完成。
  • 然后回到 main 方法中執(zhí)行第 11 行。
  • 然后是第 12 行,main方法執(zhí)行完畢。

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

相關(guān)文章

  • SpringBoot 集成 Jasypt 對數(shù)據(jù)庫加密以及踩坑的記錄分享

    SpringBoot 集成 Jasypt 對數(shù)據(jù)庫加密以及踩坑的記錄分享

    這篇文章主要介紹了SpringBoot 集成 Jasypt 對數(shù)據(jù)庫加密以及踩坑,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • JavaWeb中Tomcat底層機(jī)制和Servlet運(yùn)行原理詳解

    JavaWeb中Tomcat底層機(jī)制和Servlet運(yùn)行原理詳解

    這篇文章主要介紹了JavaWeb中Tomcat底層機(jī)制和Servlet運(yùn)行原理詳解,Tomcat是一個開源的Java Web服務(wù)器,它是基于Java Servlet和JavaServer Pages(JSP)技術(shù)的,下面是關(guān)于Tomcat底層機(jī)制和Servlet運(yùn)行原理的簡要說明,需要的朋友可以參考下
    2023-10-10
  • SpringBoot中Filter?bean如何添加到Servlet容器

    SpringBoot中Filter?bean如何添加到Servlet容器

    這篇文章主要介紹了SpringBoot中Filter bean是怎么被添加到Servlet容器中的,本文分步驟結(jié)合實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • Java的反射機(jī)制一起來看看

    Java的反射機(jī)制一起來看看

    這篇文章主要為大家詳細(xì)介紹了Java反射機(jī)制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 使用jib插件為Java應(yīng)用構(gòu)建鏡像的方法

    使用jib插件為Java應(yīng)用構(gòu)建鏡像的方法

    這篇文章主要介紹了使用jib插件為Java應(yīng)用構(gòu)建鏡像,要是用戶本地沒安裝docker,可以使用jib制作出帶有鏡像的tar文件,本文通過實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • 解析java中volatile關(guān)鍵字

    解析java中volatile關(guān)鍵字

    這篇文章主要為大家解析了java中volatile關(guān)鍵字,經(jīng)常有人把volatile關(guān)鍵字和synchronized或者lock混淆,本文就為大家好好區(qū)分,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Java中Synchronized鎖的使用和原理詳解

    Java中Synchronized鎖的使用和原理詳解

    這篇文章主要介紹了Java中Synchronized鎖的使用和原理詳解,synchronized是?Java?內(nèi)置的關(guān)鍵字,它提供了一種獨(dú)占的加鎖方式,synchronized的獲取和釋放鎖由JVM實現(xiàn),用戶不需要顯示的釋放鎖,非常方便,需要的朋友可以參考下
    2023-07-07
  • MyBatis Plus 實現(xiàn)多表分頁查詢功能的示例代碼

    MyBatis Plus 實現(xiàn)多表分頁查詢功能的示例代碼

    這篇文章主要介紹了MyBatis Plus 實現(xiàn)多表分頁查詢功能,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 深入理解Java設(shè)計模式之觀察者模式

    深入理解Java設(shè)計模式之觀察者模式

    這篇文章主要介紹了JAVA設(shè)計模式之觀察者模式的的相關(guān)資料,文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解
    2021-11-11
  • Spring Boot 會員管理系統(tǒng)之處理文件上傳功能

    Spring Boot 會員管理系統(tǒng)之處理文件上傳功能

    Spring Boot會員管理系統(tǒng)的中,需要涉及到Spring框架,SpringMVC框架,Hibernate框架,thymeleaf模板引擎。這篇文章主要介紹了Spring Boot會員管理系統(tǒng)之處理文件上傳功能,需要的朋友可以參考下
    2018-03-03

最新評論