2023.8 - java - 對象和類

?

public class Dog {String breed;int size;String colour;int age;void eat() {}void run() {}void sleep(){}void name(){}
}

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

  • 局部變量在方法、構造方法或者語句塊中定義的變量被稱為局部變量。變量聲明和初始化都是在方法中,方法結束后,變量就會自動銷毀。
  • 成員變量成員變量是定義在類中,方法體之外的變量。這種變量在創建對象的時候實例化。成員變量可以被類中方法、構造方法和特定類的語句塊訪問。
  • 類變量:類變量也聲明在類中,方法體之外,但必須聲明為 static 類型

一個類可以擁有多個方法,在上面的例子中:eat()、run()、sleep() 和 name() 都是 Dog 類的方法。

構造方法

每個類都有構造方法。如果沒有顯式地為類定義構造方法,Java 編譯器將會為該類提供一個默認構造方法。

在創建一個對象的時候,至少要調用一個構造方法。構造方法的名稱必須與類同名,一個類可以有多個構造方法。

public class Puppy{public Puppy(){}public Puppy(String name){// 這個構造器僅有一個參數:name}
}

?

創建對象

對象是根據類創建的。在Java中,使用關鍵字 new 來創建一個新的對象。創建對象需要以下三步:

  • 聲明:聲明一個對象,包括對象名稱和對象類型。
  • 實例化:使用關鍵字 new 來創建一個對象。
  • 初始化:使用 new 創建對象時,會調用構造方法初始化對象。
public class Puppy{public Puppy(String name){//這個構造器僅有一個參數:nameSystem.out.println("小狗的名字是 : " + name ); }public static void main(String[] args){// 下面的語句將創建一個Puppy對象Puppy myPuppy = new Puppy( "tommy" );}
}

?

通過已創建的對象來訪問成員變量和成員方法,如下所示:

public class Puppy{int puppyAge;public Puppy(String name){// 這個構造器僅有一個參數:nameSystem.out.println("小狗的名字是 : " + name ); }public void setAge( int age ){puppyAge = age;}public int getAge( ){System.out.println("小狗的年齡為 : " + puppyAge ); return puppyAge;}public static void main(String[] args){/* 創建對象 */Puppy myPuppy = new Puppy( "tommy" );/* 通過方法來設定age */myPuppy.setAge( 2 );/* 調用另一個方法獲取age */myPuppy.getAge( );/*你也可以像下面這樣訪問成員變量 */System.out.println("變量值 : " + myPuppy.puppyAge ); }
}

源文件聲明規則:

當在一個源文件中定義多個類,并且還有import語句和package語句時,要特別注意這些規則。

  • 一個源文件中只能有一個 public 類
  • 一個源文件可以有多個非 public 類
  • 源文件的名稱應該和 public 類的類名保持一致。例如:源文件中 public 類的類名是 Employee,那么源文件應該命名為Employee.java。
  • 如果一個類定義在某個包中,那么 package 語句應該在源文件的首行
  • 如果源文件包含 import 語句,那么應該放在 package 語句和類定義之間。如果沒有 package 語句,那么 import 語句應該在源文件中最前面。
  • import 語句和 package 語句對源文件中定義的所有類都有效。在同一源文件中,不能給不同的類不同的包聲明。

類有若干種訪問級別,并且類也分不同的類型:抽象類和 final 類等。這些將在訪問控制章節介紹。

除了上面提到的幾種類型,Java 還有一些特殊的類,如:內部類、匿名類。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/43491.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/43491.shtml
英文地址,請注明出處:http://en.pswp.cn/news/43491.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于STM32標準庫智能風扇設計

目錄 一,前言 二,系統方案選擇 三,實體展示 工程分類 四,相關代碼 PWM.c PWM.h AD.c AD.h 電機驅動程序 舵機驅動 一,前言 當今生活中,風扇已成為人們解暑的重要工具,然而使用風扇緩解…

CentOS系統環境搭建(九)——centos系統下使用docker部署項目

centos系統環境搭建專欄🔗點擊跳轉 關于Docker-compose安裝請看CentOS系統環境搭建(三)——Centos7安裝Docker&Docker Compose,該文章同樣收錄于centos系統環境搭建專欄。 Centos7部署項目 采用前后端分離的形式部署。使用Do…

【Sklearn】基于隨機梯度下降算法的數據分類預測(Excel可直接替換數據)

【Sklearn】基于隨機梯度下降算法的數據分類預測(Excel可直接替換數據) 1.模型原理2.模型參數3.文件結構4.Excel數據5.下載地址6.完整代碼7.運行結果1.模型原理 隨機梯度下降(Stochastic Gradient Descent,SGD)是一種優化算法,用于訓練模型的參數以最小化損失函數。在分…

QT學習筆記-QT5.15編譯及安裝谷歌拼音輸入法(QtInputMethod_GooglePinyin)

QT學習筆記-QT5.15編譯及安裝谷歌拼音輸入法(QtInputMethod_GooglePinyin) 0、背景1、環境2、下載QtInputMethod_GooglePinyin源碼3、使用MinGW64構建套件編譯3.1 編譯QtInputMethod_GooglePinyin源碼3.2、部署tgtsmlInputContextPlugin輸入法插件3.3、運…

Lombok注解在JSON化中,JSON生成額外生成字段問題

問題描述: 定義如下對象 Dataclass A{private String A;public String getC() {return "abab";}} 執行如下邏輯 Autowiredprivate ObjectMapper objectMapper;Testpublic void test4() throws Exception {A a new A();a.setA("a");System.ou…

分布式 - 服務器Nginx:一小時入門系列之負載均衡

文章目錄 1. 負載均衡2. 負載均衡策略1. 輪詢策略2. 最小連接策略3. IP 哈希策略4. 哈希策略5. 加權輪詢策略 1. 負載均衡 跨多個應用程序實例的負載平衡是一種常用技術,用于優化資源利用率、最大化吞吐量、減少延遲和確保容錯配置。?使用 nginx 作為非常有效的HT…

【MySQL】如何使用Shared-memory協議(Windows)連接MySQL數據庫

文章目錄 【MySQL】如何使用Shared-memory協議(Windows)連接MySQL數據庫連接MySQL的協議使用Shared-memory協議(Windows)連接MySQL步驟1:確認MySQL服務器已啟用Shared-memory連接啟動Shared-memory連接方法 步驟2:客戶端使用shared-memory連接MySQL服務器…

神經網絡基礎-神經網絡補充概念-55-為什么是ML策略

“ML策略”(Machine Learning Strategies)是指在解決機器學習問題時,采取的一系列方法、技巧和策略。選擇適當的ML策略對于獲得高質量的模型和結果非常重要。以下是為什么要考慮ML策略的一些原因: 問題適應性:不同的機…

2023 最新版網絡安全保姆級指南,從 0 基礎進階網絡攻防工程師

一、網絡安全學習的誤區 1.不要試圖以編程為基礎去學習網絡安全 不要以編程為基礎再開始學習網絡安全,一般來說,學習編程不但學習周期長,且過渡到網絡安全用到編程的用到的編程的關鍵點不多。一般人如果想要把編程學好再開始學習網絡安全往…

Vue實例生命周期中的所有鉤子函數

在 Vue 3 中,實例生命周期的鉤子函數被整合為了兩個主要的階段:Composition API 階段和 Options API 階段。下面是 Vue 3 中的所有生命周期鉤子函數: Composition API 階段: setup //在組件實例創建之前執行,用于設…

centos 之安裝 openssl 1.1.1報錯

源碼make時報錯,可能是系統的perl的版本太低問題。 [rootlocalhost ~]# cpan -a | grep Test::More Test::More 0.92 1.302171 EXODIST/Test-Simple-1.302171.tar.gz [rootlocalhost ~]# cpan -a | grep Text::Template [rootlocalhost ~]# …

Dockerfile小記(持續)

文章目錄 信息新建用戶服務重啟數據庫相關SSH無交互安裝auth.logssh開機自啟 Apache服務配置 信息 Alpine系統 新建用戶 useradd命令參考 RUN apk update \ && apk add shadow \&& useradd -m togie \&& echo togie:12345 | chpasswd \&& &…

nginx負載均衡配置案例

一、nginx代理配置 ## 定義一個集群,名稱叫做load_balancer_testupstream load_balancer_test {#ip_hash是負載均衡策略#ip_hash;#集群下有兩個服務server 192.168.1.233:8087;server 192.168.1.243:8087;}server {#監聽8600端口listen 8600;server_name loc…

Lnton羚通關于PyTorch的保存和加載模型基礎知識

SAVE AND LOAD THE MODEL (保存和加載模型) PyTorch 模型存儲學習到的參數在內部狀態字典中,稱為 state_dict, 他們的持久化通過 torch.save 方法。 model models.shufflenet_v2_x0_5(pretrainedTrue) torch.save(model, "../../data/ShuffleNetV2_X0.5.pth…

vue2.6升級vue2.7(panjiachen升級指南)vue-cli5多頁面應用升級的坑

vue2.7升級指南 vue2.7升級指南 之前的架子使用的是 panjiachen,使用的是 vue2.6.14,現在升級為 vue2.7.x 升級vue/cli vue upgrade 這里推薦使用 vue upgrade 命令自動升級 # 確保安裝全局 vue/cli $ npm install -g vue/cli $ vue upgradeWARN Th…

水庫大壩安全監測MCU,提升大壩管理效率的利器!

水庫大壩作為防洪度汛的重要設施,承擔著防洪抗旱,節流發電的重要作用。大壩的安全直接關系到水庫的安全和人民群眾的生命財產安全。但因為水庫大壩的隱患不易被察覺,發現時往往為時已晚。因此,必須加強對大壩的安全管理。其安全監…

RFID技術助力汽車零配件裝配產線,提升效率與準確性

隨著科技的不斷發展,越來越多的自動化設備被應用到汽車零配件裝配產線中。其中,射頻識別(Radio Frequency Identification,簡稱RFID)技術憑借其獨特的優勢,已經成為了這一領域的重要技術之一。本文將介紹RF…

【SLAM】ORBSLAM34macOS: ORBSLAM3 Project 4(for) macOS Platform

文章目錄 配置ORBSLAM34macOS 版本運行步驟:版本修復問題記錄:編譯 fix運行 fix 配置 硬件:MacBook Pro Intel CPU 系統:macOS Ventura 13.4.1 ORBSLAM34macOS 版本 https://github.com/phdsky/ORB_SLAM3/tree/macOS 運行步驟&…

初識結構體

文章目錄 目錄1. 結構體類型的聲明1.1 結構的基礎知識1.2 結構的聲明1.3 結構成員的類型1.4 結構體變量的定義和初始化 2. 結構體成員的訪問3. 結構體傳參 目錄 結構體類型的聲明結構體初始化結構體成員訪問結構體傳參 1. 結構體類型的聲明 1.1 結構的基礎知識 結構是一些值的…

三維可視化平臺有哪些?Sovit3D可視化平臺怎么樣?

隨著社會經濟的發展和數字技術的進步,互聯網行業發展迅速。為了適應新時代社會發展的需要,大數據在這個社會經濟發展過程中隨著技術的進步而顯得尤為重要。同時,大數據技術的快速發展進程也推動了可視化技術的飛速發展,國內外各類…