一纱意、介紹
這里我們介紹的自定義數(shù)據(jù)類型就是定義我們JAVA中的類喻频,類是我們JAVA編程的基本的單位,寫好了類寨典,就相當(dāng)于學(xué)好JAVA的基本構(gòu)成耀盗。
二想虎、內(nèi)容
1.1 自定義數(shù)據(jù)類型概述
任何編程語言都需要將現(xiàn)實(shí)生活中的事物抽象成代碼。這時(shí)可以使用自定義的數(shù)據(jù)類型(類)來描述(映射)現(xiàn)實(shí)事物叛拷。
類就是數(shù)據(jù)類型舌厨,與之前學(xué)習(xí)的所有引用數(shù)據(jù)類型相同,自定義類也是一種數(shù)據(jù)類型忿薇。只是自定義類型并非Java為我們預(yù)先提供好的類型裙椭,而是我們自己定義的一種引用數(shù)據(jù)類型用來描述一個(gè)事物。
1.2 類的定義及使用
1.2.1 類的定義格式及使用格式
代碼映射現(xiàn)實(shí)事物的過程就是定義類的過程署浩。每個(gè)成員變量與要描述的事物屬性變量名對應(yīng)揉燃,數(shù)據(jù)類型對應(yīng)。
這時(shí)筋栋,我們便可以將一個(gè)事物的多個(gè)屬性值組織成一個(gè)完整的事物作為操作單位炊汤。
a) 類的定義格式
創(chuàng)建文件,與類名相同
public class 類名{
數(shù)據(jù)類型? 屬性名稱;
數(shù)據(jù)類型? 屬性名稱2婿崭;
…
}
如:
class Person {
String? name;
int? age;
…
}
b) 類的使用格式
類在定義出來之后拨拓,必須被使用,不使用雖然沒有語法錯(cuò)誤氓栈,但是沒有意義渣磷。
自定義類的使用方式與以往的引用數(shù)據(jù)類型完全相同,如下:
導(dǎo)包:我們將所有的類放到同一個(gè)文件夾下授瘦,可以避免導(dǎo)包醋界。
創(chuàng)建對象:數(shù)據(jù)類型? 變量名 = new 數(shù)據(jù)類型();
調(diào)用方法: 由于我們定義的類型并不完整,所以現(xiàn)在不涉及調(diào)用方法提完,而是訪問屬性訪問屬性:對象名. 屬性名 (這是當(dāng)前的方式形纺,后期會(huì)采取調(diào)用方法的方式替代掉直接訪問的方式來完成對屬性的訪問。)
如:
Person p = new Person();
p.name? =? “AngelaBaby”;
p.age = 18;
Person p2 = new Person();
p2.name? =? “黃曉明”;
p2.age = 36;
System.out.println(p.name);? //打印結(jié)果:AngelaBaby
System.out.println(p.age);? //打印結(jié)果:18
System.out.println(p2.name); //打印結(jié)果:黃曉明
System.out.println(p2.age);? //打印結(jié)果:36
1.2.2 自定義類型練習(xí)
我們可以將現(xiàn)實(shí)生活中的任何事物抽象成一個(gè)類徒欣,請自定義并使用一種數(shù)據(jù)類型逐样。如人類、動(dòng)物類打肝、汽車類脂新、衣服類、玩具類等粗梭。
/*
自定義類型 人類
屬性
姓名? String
年齡? int
性別? String
身高? double
是否熱愛java? boolean
*/
public class Person
{
//姓名
String name;
//年齡
int age;
//性別
String sex;
//身高
double height;
//是否喜歡java
boolean isLoveJava;
}
/*
測試自定義類型 Person類
注意事項(xiàng)
自定義類就是引用數(shù)據(jù)類型 每個(gè)對象的屬性都有默認(rèn)值
static修飾的方法 只能調(diào)用static修飾的方法或成員變量
指的是
在同一個(gè)類中直接訪問時(shí)争便,必須使用static修飾
如果通過對象名.方法名 或者 對象名.屬性名的方式訪問 不需要static飾
*/
public class Test_Person{
public static void main(String[] args){
Person? p = new Person();
p.name = "柳巖";
p.age = 38;
p.sex = "女";
p.height = 1.65;
p.isLoveJava = true;
System.out.println("姓名:"+p.name);
System.out.println("年齡:"+p.age);
System.out.println("性別:"+p.sex);
System.out.println("身高:"+p.height);
System.out.println("是否喜歡java:"+p.isLoveJava);?
System.out.println("-------------------");
Person p2 = new Person();
System.out.println(p2);
System.out.println(p2.name);
System.out.println("年齡:"+p2.age);
System.out.println("性別:"+p2.sex);
System.out.println("身高:"+p2.height);
System.out.println("是否喜歡java:"+p2.isLoveJava);
}
}
/*
自定義數(shù)據(jù)類型? 商品類
商品屬性
商品編號? String
商品名稱? String?
商品單價(jià)? double
商品數(shù)量? int
商品金額? double
創(chuàng)建文件,與類名相同
public class 類名{
數(shù)據(jù)類型? 屬性名稱断医;
數(shù)據(jù)類型? 屬性名稱2滞乙;
…
}
*/
public class GoodsItem
{
//商品編號
String id;
//商品名稱
String name;
//商品單價(jià)
double price;
//商品數(shù)量
int number;
//商品金額
double money;
}
/*
測試類? 測試自定義類型商品類
導(dǎo)包 測試類 與 被測試類在同一個(gè)文件夾下 不需要導(dǎo)包
創(chuàng)建對象 數(shù)據(jù)類型 變量名 = new 數(shù)據(jù)類型();
調(diào)用方法 沒有方法不調(diào)用
訪問屬性
變量名.屬性名? 獲取值/賦值
*/
public class Test_GoodsItem{
public static void main(String[] args)
{
GoodsItem gs = new GoodsItem();
gs.id = "01";
gs.name = "少林寺酥餅核桃";
gs.price = 15.50;
gs.number = 22;
gs.money= gs.price * gs.number;
String id= gs.id;
System.out.println(id);
System.out.println(gs.money+20.01);
}
}
1.2.3 自定義類型注意事項(xiàng)與內(nèi)存圖
這里完成的是不完整的自定義類型,更為完整的自定義類定義方式會(huì)在面向?qū)ο髸r(shí)詳細(xì)解釋鉴嗤。
與引用類型數(shù)組類似斩启,同為引用類型的自定義類型直接打印對象的引用變量,結(jié)果為對象地址值躬窜,這里可以通過內(nèi)存圖簡單解釋浇垦。