Java類和對象的定義與使用小結(jié)
一.是面向?qū)ο?/h2>
1.1什么是面向?qū)ο?/h3>
Java是一門純面向?qū)ο蟮恼Z言,在面向?qū)ο蟮氖澜缋铮磺薪詾閷ο?。我們可以理解面向?qū)ο笠环N解題思想,主要依靠對象之間的交互完成一件事情。
1.2面向?qū)γ嫦蜻^程:
我們拿洗衣服舉例子:
面向過程:
拿衣服 → 放盆里 → 加水 → 加洗衣粉 → 搓洗 → 晾干
面向?qū)ο螅?/p>
找洗衣機(jī) → 放衣服 → 按按鈕 → 等待 → 晾干象和面向過程
面向?qū)ο蟀褟?fù)雜的問題拆分成多個對象,每個對象負(fù)責(zé)自己的事情,就像我們并不知道洗衣機(jī)的原理是什么,只要會用就可以了
二.類和對象的定義和使用
2.1認(rèn)識類(class)
類是用來對一個實(shí)體(對象)來進(jìn)行描述的,主要描述該實(shí)體(對象)具有哪些屬性(對象具有的屬性),哪些功能(用來做什么),描述完成后計算機(jī)就可以識別了。
比如:學(xué)生是一個類,它有屬性(年齡,性別)和行為(學(xué)習(xí),運(yùn)動)
//定義一個學(xué)生類
class Student{
//類的屬性
int age;//年齡
String name;//名字
}class為定義類的關(guān)鍵字,student為類的名字,{}中為類的主體。
類中包含的內(nèi)容稱為類的成員。屬性主要是用來描述類的,稱之為類的成員屬性或者類成員變量。方法主要說明類具有哪些功能,稱為類的成員方法。
我們拿洗衣機(jī)舉一個完整的例子
class WashMachine{
public String brand; // 品牌
public String type; // 型號
public double weight; // 重量
public double length; // 長
public double width; // 寬
public double height; // 高
public String color; // 顏色
public void washClothes(){ // 洗衣服
System.out.println("洗衣功能");
}
public void dryClothes(){ // 脫水
System.out.println("脫水功能");
}
public void setTime(){ // 定時
System.out.println("定時功能");
}
}注意事項(xiàng):
1. 一般一個文件當(dāng)中只定義一個類
2. main方法所在的類一般要使用public修飾(注意:Eclipse默認(rèn)會在public修飾的類中找main方法)
3. public修飾的類必須要和文件名相同
4. 不要輕易去修改public修飾的類的名稱,如果要修改,通過開發(fā)工具修改
2.2認(rèn)識對象
對象(Object) 是類的具體實(shí)例,用類類型創(chuàng)建對象的過程,稱為類的實(shí)例化。
比如張三是學(xué)生類的一個對象,而李四則是另一個對象
public class Test {
public static void main(String[] args) {
// 創(chuàng)建對象
Student s1 = new Student();
s1.name = "張三";
s1.age = 18;
s1.study(); // 張三正在學(xué)習(xí)
Student s2 = new Student();
s2.name = "李四";
s2.age = 17;
s2.study(); // 李四正在學(xué)習(xí)
}
}注意事項(xiàng):
new 關(guān)鍵字用于創(chuàng)建一個對象的實(shí)例.
使用 . 來訪問對象中的屬性和方法.
同一個類可以創(chuàng)建對個實(shí)例.
2.3類和對象的關(guān)系
類是模板,藍(lán)圖
對象是實(shí)踐,施工
類實(shí)例化出對象就像現(xiàn)實(shí)中使用建筑設(shè)計圖建造出房子,類就像是設(shè)計圖,只設(shè)計出需要什么東 西,但是并沒有實(shí)體的建筑存在,同樣類也只是一個設(shè)計,實(shí)例化出的對象才能實(shí)際存儲數(shù)據(jù),占用物理空間
三.this引用
3.1this引用的作用
this 代表當(dāng)前對象的引用,用于區(qū)分成員變量和局部變量。
class Person {
// 成員變量
String name;
int age;
// 構(gòu)造方法:參數(shù)名和成員變量重名了!
public Person(String name, int age) {
// this.name = 自己的name
this.name = name;
// this.age = 自己的age
this.age = age;
}
public void showInfo() {
System.out.println("姓名:" + this.name);
System.out.println("年齡:" + this.age);
}
}
public class Test {
public static void main(String[] args) {
Person p = new Person("小明", 20);
p.showInfo();
}
}3.2 this引用的特性
1. this的類型:對應(yīng)類類型引用,即哪個對象調(diào)用就是哪個對象的引用類型
2. this只能在"成員方法"中使用 比特就業(yè)課
3. 在"成員方法"中,this只能引用當(dāng)前對象,不能再引用其他對象
四.構(gòu)造方法
4.1什么是構(gòu)造方法
構(gòu)造方法(也稱為構(gòu)造器)是一個特殊的成員方法,名字必須與類名相同,在創(chuàng)建對象時,由編譯器自動調(diào)用,并且 在整個對象的生命周期內(nèi)只調(diào)用一次。
class Dog{
String name;
int age;
//帶參數(shù)構(gòu)造
public Dog(String name,int age){
this.name = name;
this.age = age;
}
public void info(){
System.out.println(name+","+age+"歲");
}
}
public class TestDog{
public static void main(String[] args) {
//創(chuàng)建對象時傳參
Dog d = new Dog("旺財",3);
d.info();
}
}4.2構(gòu)造的特性
1. 名字必須與類名相同
2. 沒有返回值類型,設(shè)置為void也不行
3. 創(chuàng)建對象時由編譯器自動調(diào)用,并且在對象的生命周期內(nèi)只調(diào)用一次(相當(dāng)于人的出生,每個人只能出生一次
4. 構(gòu)造方法可以重載(用戶根據(jù)自己的需求提供不同參數(shù)的構(gòu)造方法)
4.3默認(rèn)初始化
public class DefaultValueDemo {
// 8種基本類型 + 引用類型,全都沒有手動賦值
byte b;
short s;
int i;
long l;
float f;
double d;
char ch;
boolean bool;
String str;
// 構(gòu)造方法:創(chuàng)建對象時自動打印所有默認(rèn)值
public DefaultValueDemo() {
System.out.println("byte 默認(rèn)值:" + b);
System.out.println("short 默認(rèn)值:" + s);
System.out.println("int 默認(rèn)值:" + i);
System.out.println("long 默認(rèn)值:" + l);
System.out.println("float 默認(rèn)值:" + f);
System.out.println("double 默認(rèn)值:" + d);
System.out.println("char 默認(rèn)值:[" + ch + "]");
System.out.println("boolean默認(rèn)值:" + bool);
System.out.println("String 默認(rèn)值:" + str);
}
public static void main(String[] args) {
// 創(chuàng)建對象 → 自動調(diào)用構(gòu)造 → 一次性輸出所有未初始化的值
new DefaultValueDemo();
}
}
//運(yùn)行結(jié)果
//byte 默認(rèn)值:0
//short 默認(rèn)值:0
//int 默認(rèn)值:0
//long 默認(rèn)值:0
//float 默認(rèn)值:0.0
//double 默認(rèn)值:0.0
//char 默認(rèn)值:[]
//boolean默認(rèn)值:false
//reference 默認(rèn)值:null到此這篇關(guān)于Java類和對象的定義與使用小結(jié)的文章就介紹到這了,更多相關(guān)Java類和對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java類和對象全面解析
- Java對象類型轉(zhuǎn)換實(shí)現(xiàn)方式(向上轉(zhuǎn)型與向下轉(zhuǎn)型)
- 在Java中如何將Object對象轉(zhuǎn)換為具體實(shí)體類對象
- Java中類與對象全面解析(附實(shí)例代碼)
- Java從入門到精通之旅類和對象全面解析
- Java 中 getClass() 方法的使用與原理深入分析(對象類型信息)
- Java編寫通用的導(dǎo)出任何對象列表數(shù)據(jù)到excel的工具類
- java中判斷對象類型的3種方法舉例
- Java如何將任意類型的Object對象轉(zhuǎn)換為相應(yīng)的實(shí)體對象
相關(guān)文章
springboot log4j2不能打印框架錯誤日志的解決方案
這篇文章主要介紹了springboot log4j2不能打印框架錯誤日志的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
java排查進(jìn)程占用系統(tǒng)內(nèi)存高方法
這篇文章主要為大家介紹了java進(jìn)程占用系統(tǒng)內(nèi)存高排查方法,2023-06-06
Spring中的NamespaceHandler接口及相關(guān)軟件包說明
這篇文章主要介紹了Spring中的NamespaceHandler接口及相關(guān)軟件包說明,NamespaceHandler 接口,DefaultBeanDefinitionDocumentReader 使用該接口來處理在spring xml 配置文件中自定義的命名空間,需要的朋友可以參考下2023-12-12
Dubbo注冊中心與服務(wù)發(fā)現(xiàn)詳解
本文全面介紹了Dubbo注冊中心及服務(wù)發(fā)現(xiàn)機(jī)制,包括Zookeeper、Nacos、Multicast等多種注冊中心的配置方法、高可用特性及其在接口級和應(yīng)用級服務(wù)發(fā)現(xiàn)中的應(yīng)用,支持多注冊中心和高階服務(wù)治理能力,實(shí)現(xiàn)微服務(wù)的動態(tài)擴(kuò)容和流量管控2025-10-10
SpringBoot中WebClient的實(shí)踐過程
本文介紹了SpringBoot中WebClient的使用,包括配置、使用場景以及優(yōu)化策略,幫助開發(fā)者更高效地進(jìn)行服務(wù)間通信,WebClient具有非阻塞式I/O、強(qiáng)大的功能、靈活性等優(yōu)點(diǎn),適用于高并發(fā)場景,通過合理配置和優(yōu)化,可以顯著提升服務(wù)間通信的效率和可靠性2025-12-12
Java之使用POI教你玩轉(zhuǎn)Excel導(dǎo)入與導(dǎo)出
這篇文章主要介紹了Java之使用POI教你玩轉(zhuǎn)Excel導(dǎo)入與導(dǎo)出,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10
使用MyBatis攔截器實(shí)現(xiàn)SQL的完整打印
當(dāng)我們使用Mybatis結(jié)合Mybatis-plus進(jìn)行開發(fā)時,為了查看執(zhí)行sql的信息通常我們可以通過屬性配置的方式打印出執(zhí)行的sql語句,但這樣的打印出了sql語句常帶有占位符信息,不利于排錯,所以本文介紹了構(gòu)建MyBatis攔截器,實(shí)現(xiàn)SQL的完整打印,需要的朋友可以參考下2024-07-07

