封裝就是隱藏實(shí)現(xiàn)細(xì)節(jié) 將屬性私有化 提供公有方法訪(fǎng)問(wèn)私有屬性。 類(lèi)是基于面向?qū)ο笏枷刖幊陶Z(yǔ)言的基礎(chǔ) 程序員可以把具有相同業(yè)務(wù)性質(zhì)的代碼封裝到一個(gè)類(lèi)里 通過(guò)接口方法向外部代碼提供服務(wù) 同時(shí)向外部代碼屏蔽類(lèi)里服務(wù)的具體實(shí)現(xiàn)方式。對(duì)象是類(lèi)的實(shí)例 類(lèi)一般是個(gè)抽象名詞 比如“人類(lèi)” 而對(duì)象則是具體的物質(zhì)存在 比如“張三” 這個(gè)人。在現(xiàn)實(shí)生活中 經(jīng)常會(huì)遇到“類(lèi)” 和“對(duì)象” 這些概念 比如封裝了能實(shí)現(xiàn)“全自動(dòng)洗衣機(jī)” 功能的洗衣機(jī)類(lèi)。這里 用戶(hù)可以使用面板上的按鈕 使用該類(lèi)里提供的洗衣等服務(wù)并且 由于該類(lèi)實(shí)現(xiàn)了封裝 所以在使用的時(shí)候 用戶(hù)可以不用了解其中的自動(dòng)洗衣原理以及實(shí)現(xiàn)機(jī)制。 類(lèi)是同一種類(lèi)型的對(duì)象的抽象 是某種類(lèi)型對(duì)象的概述和定義 而對(duì)象則是某個(gè)類(lèi)的實(shí)例化結(jié)果或者叫一種類(lèi)型的實(shí)體。在使用面向?qū)ο蟮乃枷脒M(jìn)行軟件開(kāi)發(fā)的過(guò)程中 首先得抽出項(xiàng)目的實(shí)體-對(duì)象模型 即首先是實(shí)體類(lèi)的定義、封裝。
介休ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:18980820575(備注:SSL證書(shū)合作)期待與您的合作!
//這就是一個(gè)封裝類(lèi),封裝的思想就是屬性私有化,提供可以訪(fǎng)問(wèn)設(shè)置屬性的共有方法
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void talk(){
System.out.println("一個(gè)人在說(shuō)話(huà)");
}
}
//學(xué)生繼承了人類(lèi),因?yàn)閷W(xué)生也是人(廢話(huà))
public class Student extends Person {
//班級(jí)
private String theClass;
//地址
private String address;
public String getTheClass() {
return theClass;
}
public void setTheClass(String theClass) {
this.theClass = theClass;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public void talk() {
System.out.println("一個(gè)學(xué)生在說(shuō)話(huà)");
}
public static void main(String[] args){
//多態(tài)也就是父類(lèi)引用指向子類(lèi)對(duì)象
Person student = new Student();
student.talk();
}
}
//Example類(lèi)文件Example.java
package?cn.zhouhan;
import?java.util.Scanner;
public?class?Example?{
static?Drink?cola,?fanta,?blacktea,?greentea;
static?int?money;
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
cola?=?new?Drink("可樂(lè)",?50,?2.0,?1);
fanta?=?new?Drink("芬達(dá)",?40,?3.0,?2);
blacktea?=?new?Drink("紅茶",?30,?4.0,?3);
greentea?=?new?Drink("綠茶",?20,?5.0,?4);
money?=?500;
for()
{
System.out.println("-------------自動(dòng)售貨機(jī)-------------");
cola.UserPrintDrinkInfo();
fanta.UserPrintDrinkInfo();
blacktea.UserPrintDrinkInfo();
greentea.UserPrintDrinkInfo();
System.out.println("----------------------------------");
System.out.println("1.購(gòu)買(mǎi)飲料");
System.out.println("2.管理員查詢(xún)");
System.out.println("3.返回");
System.out.println("請(qǐng)輸入要執(zhí)行的操作序號(hào):");
Scanner?scannerIndex?=?new?Scanner(System.in);
int?indexScanner?=?scannerIndex.nextInt();
switch(indexScanner)
{
case?1:
System.out.println("請(qǐng)選擇購(gòu)買(mǎi)的飲料(1.可樂(lè),2.芬達(dá),3紅茶,4.綠茶):");
Scanner?numberScanner?=?new?Scanner(System.in);
int?buyIndex?=?numberScanner.nextInt();
Drink?drink?=?getDrink(buyIndex);
System.out.println("請(qǐng)輸入購(gòu)買(mǎi)的數(shù)量:");
Scanner?countScanner?=?new?Scanner(System.in);
int?buyCount?=?countScanner.nextInt();
if?(buyCount??0)
{
System.out.println("您選擇了"?+?buyCount?+?"瓶"?+?drink.getName()?+?"."?);
System.out.println("總價(jià)格:"?+?drink.getPrice()?*?buyCount?+?"元,請(qǐng)投入1元或5元紙幣。");
System.out.println("確定購(gòu)買(mǎi)?(1.確定,2.退款):");
Scanner?sureScanner?=?new?Scanner(System.in);
int?sure?=?sureScanner.nextInt();
if?(sure?==?1)
{
drink.sellDrink(buyCount);
money?+=?drink.getPrice()?*?buyCount;
System.out.println("您購(gòu)買(mǎi)了"?+?buyCount?+?"瓶"?+?drink.getName()?+?",交易成功."?);
}
if?(sure?==2?)
{
System.out.println("退款成功!");
}
}
else
System.out.println("輸入的數(shù)量有誤!");
break;
case?2:
System.out.println("請(qǐng)輸入管理員密碼:");
Scanner?pwScanner?=?new?Scanner(System.in);
int?password?=?pwScanner.nextInt();
if?(password?==?123)
{
System.out.println("密碼正確,目前的余額為:"?+?money?+?"元。");
}
else
System.out.println("密碼錯(cuò)誤。");
break;
case?3:
break;
default:
System.out.println("請(qǐng)輸入正確的數(shù)字。");
break;
}
}
}
public?static?Drink?getDrink(int?drinkIndex)
{
Drink?drink?=?null;
switch(drinkIndex)
{
case?1:
drink?=?cola;
System.out.println("您選擇了可樂(lè)。");
break;
case?2:
drink?=?fanta;
System.out.println("您選擇了芬達(dá)。");?
break;
case?3:
drink?=?blacktea;
System.out.println("您選擇了紅茶。");
break;
case?4:
drink?=?greentea;
System.out.println("您選擇了綠茶。");
break;
default:
//drink?=?null;
System.out.println("輸入錯(cuò)誤,請(qǐng)輸入1~4的數(shù)字!");
}
return?drink;
}
}
//創(chuàng)建的Drink類(lèi)文件Drink.java
package?cn.zhouhan;
public?class?Drink?{
private?String?name;
private?int?number;
private?double?price;
private?double?drinkMoney;
private?int?index;
public?Drink(String?name,?int?number,?double?price,?int?index)
{
this.name?=?name;
this.number?=?number;
this.price?=?price;
this.drinkMoney?=?number?*?price;
this.index?=?index;
}
public?String?getName()
{
return?this.name;
}
public?int?getNumber()
{
return?this.number;
}
public?double?getPrice()
{
return?this.price;
}
public?void?sellDrink(int?count)
{
this.number?-=?count;
this.drinkMoney?+=?this.price?*?count;
}
public?void?UserPrintDrinkInfo()
{
System.out.println("品名:"+?this.name?+",單價(jià):"?+?this.price?+?"元,剩余數(shù)量:"?+?this.number?+?"瓶。");
}
}