java學(xué)習(xí)——面向?qū)ο蟪绦蛟O(shè)計(jì)

一、面向?qū)ο蟮母拍睿ㄒ栽O(shè)計(jì)首飾盒為例)

面向?qū)ο螅簬煾滇槍?duì)用戶提出的要求進(jìn)行分析,并將分析的結(jié)果設(shè)計(jì)成一張完整的圖紙,與需求的用戶確認(rèn),然后將一切的準(zhǔn)備工作全部處理完之后再分塊制作,最后將各個(gè)小部分組裝在一起。

面向過程:用戶提出哪些需求,師傅就針對(duì)用戶的要求進(jìn)行制作,直接制作出一個(gè)完整的整體,本身也不準(zhǔn)備好做首飾盒所需的工具,而是需要什么再單獨(dú)拿什么。

二、面向?qū)ο蟮姆庋b性、繼承性、多態(tài)性

1、封裝性:指對(duì)外部不可見

public class Person {

String name;

int age;

public void tell () {

System.out.println("姓名:"+name+",年齡:"+age);

}

}

//在主函數(shù)調(diào)用

Person per =newPerson();

per.name="張三";

per.age= -30;

per.tell();

為上述程序加上封裝屬性:

public class Person {

private String name;

private int age;

public void tell () {

System.out.println("姓名:"+name+",年齡:"+age);

}

}

主程序訪問報(bào)錯(cuò)。做如下修改

public class Person {

private String name;

private int age;

public void tell () {

System.out.println("姓名:"+ getName() +",年齡:"+ getAge());

}

public void setAge(int age) {

this.age= age;

}

public int getAge() {

return age;

}

public void setName(String name) {

this.name= name;

}

public String getName() {

return name;

}

}

Person per =newPerson();

per.setName("張三");

per.setAge(-30);

per.tell();

2、繼承性

(1)、類的繼承格式

class 父類 { }//定義父類

class 子類 extends 父類 {}// 使用extends 關(guān)鍵字實(shí)現(xiàn)繼承

父類:

public class Person {

private String name;

private int age;

public void tell () {

System.out.println("姓名:"+ getName() +",年齡:"+ getAge());

}

public void setAge(intage) {

this.age= age;

}

public int getAge() {

return age;

}

public void setName(String name) {

this.name= name;

}

public String getName() {

return name;

}

}

通過子類擴(kuò)展父類的功能

public class Student extends Person {

private String school;//定義新的屬性

public void setSchool(String school) {

this.school= school;

}

public String getSchool() {

return school;

}

}

??:(1)、只允許多層繼承,而不能多重繼承

(2)、繼承的子類有時(shí)也稱派生類

通過getter方法間接取得屬性內(nèi)容:

public voidfun() {

System.out.print("父類中的name屬性:"+ getName());

}

3、多態(tài)性

三、抽象類與接口的應(yīng)用

1、抽象類的定義格式

abstract class ?抽象類名稱{

屬性;

訪問權(quán)限 返回值類型 方法名稱(參數(shù)){ //普通方法

[return 返回值];

}

訪問權(quán)限 abstract 返回值類型 方法名稱(名稱); // 抽象方法

// 在抽象方法中是沒有方法體

}

abstract class Person {//定義抽象類person

private String name;//定義name屬性

private? int age;// 定義age屬性

public Person(String name,int age){//抽象類中的定義構(gòu)造方法

this.setName(name);

this.setAge(age);

}

public void setName(String name) {

this.name= name;

}

public String getName() {

return name;

}

public void setAge(intage) {

this.age= age;

}

public int getAge() {

return age;

}

public abstract String getInfo();//取得信息,抽象方法

}

class Student extends Person {

private String school;//定義新的屬性

public Student(String name,intage, String school) {

super(name, age);

this.setSchool(school);

}

public void setSchool(String school) {

this.school= school;

}

public String getSchool() {

return school;

}

@Override

public String getInfo() {

return "姓名 "+super.getName() +

"; 年齡:"+super.getAge() +

"; 學(xué)校"+this.getSchool();

}

}

Student stu = new Student("張三",30,"清華大學(xué)");

stu.getInfo();

2、接口的定義格式

interface 接口名稱 {

全局常量;

抽象方法;

}

interface A {

public static final String AUTHOR="哈哈";// 定義全局常量

public abstract void print();// 定義抽象方法

public abstract String getInfo();// 定義抽象方法

}

abstract class B {// 定義抽象類

public abstract void say();

}

class X extends B implements A {// 子類同時(shí)實(shí)現(xiàn)接口

public void say() {// 覆寫接口A中的抽象方法

System.out.print("hello world!!");

}

public String getInfo(){// 覆寫接口A的抽象方法

return "HELLO";

}

public void print() {// 覆寫接口A中的抽象方法

System.out.print("作者:" + AUTHOR);

}

}

3、接口的多繼承

interface 子接口 extends 父接口A,父接口B,父接口C,.... {

}

4、抽象類的應(yīng)用 ——模板設(shè)計(jì)

5、接口的應(yīng)用 ——工廠模式、代理模式

四、異常的捕獲及處理

try{

// 有可能異常的處理語句

}catch(異常類 異常對(duì)象){

// 編寫異常的處理語句

}

finally{

?//一定會(huì)運(yùn)行到的程序代碼

}

五、 包及訪問控制權(quán)限

1、訪問權(quán)限:

private:表示屬性私有訪問權(quán)限,只能在本來中進(jìn)行訪問。

default:表示默認(rèn)訪問權(quán)限可以被本包中的其他類所訪問,但是不能被其他包的類所訪問。

protected:表示受保護(hù)的訪問權(quán)限。只能被本包及不同包的子類訪問。

public: 表示此方法可以被外部調(diào)用。

static: 表示此方法可以由類名稱直接調(diào)用。

void:主方法是程序的起點(diǎn),所以不需要任何返回值。

main:系統(tǒng)規(guī)定好默認(rèn)調(diào)用的方法名稱,執(zhí)行時(shí)默認(rèn)找到main方法類。

String args[]: 表示的是運(yùn)行時(shí)的參數(shù)。參數(shù)傳遞的形式 “Java類名稱 參數(shù)1 參數(shù)2 參數(shù)3 ...”

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,527評(píng)論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,636評(píng)論 18 399
  • (一)Java部分 1、列舉出JAVA中6個(gè)比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨(dú)云閱讀 7,241評(píng)論 0 62
  • 請(qǐng)想想這兩個(gè)問題, 有哪件事,你經(jīng)常做的話會(huì)對(duì)你個(gè)人的生活產(chǎn)生重大的正面影響,可是卻遲遲沒有去做? 在你的事業(yè)上有...
    zhoujia閱讀 571評(píng)論 0 0
  • 很容易滿足,很容易感恩,很容易覺得自己很幸運(yùn),一切都是這么的剛剛好。 剛剛看了一篇文章,一段故事,就讓我想起很多,...
    南雅媽媽閱讀 318評(píng)論 0 0

友情鏈接更多精彩內(nèi)容