一、面向?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 ...”