面向過程思想java
面向對象思想編程
面向對象編程(Object-Oriented Programming,OOP)安全
面向對象編程的本質是:以類的方式組織代碼,以對象的形式封裝數據dom
抽象ide
三大特性:工具
對象:具體的事物。類是抽象的,是對對象的抽象性能
類是對象的模板this
類中包含設計
靜態的屬性:屬性code
動態的行爲:方法
方法的定義
方法的調用
使用new關鍵字建立對象,分配內存空間並給建立好的對象進行默認的初始化以及對類中構造器的調用。
類中的構造器(構造方法),是進行建立對象時必須調用的,構造器有如下倆特色
必須和類的名字相同
沒有返回值類型,也不能寫void
格式:權限修飾符+類名() { }
一個類中至少有一個構造器
class Person{ //構造器 public Person(){ } }
對象的屬性和方法
Person people=new Person(); people.say();//調用方法 people.name; //調用屬性
該隱藏的隱藏,該暴露的暴露
程序的設計要「高內聚,低耦合」(高內聚:類內部的數據操做細節本身完成,不容許外部干涉;低耦合:僅暴露少許的方法供外部使用)
封裝(數據的隱藏)
屬性私有,get()/set() 方法對其操做
class Person{ private int age; private String name; public int getAge(){ return this.age; } public void setAge(int age){ this.age=age; } }
優勢
繼承的本質是對某一批類的抽象;
extends "擴展",子類是父類的擴展 使用此關鍵字來實現繼承
java中只有單繼承,沒有多繼承
繼承是類和類之間 的關係
子類與父類的關係,從意義上來說具備「 is a" 的關係。
object類: Java中全部的類,都默認直接或間接繼承object
super :
VS this
表明的對象不一樣
前提
構造方法:
final
前提條件:有繼承關係,子類重寫父類的方法
規則(子類的方法和父類方法必須一致,方法體不一樣)
非靜態方法的重寫
私有方法 static 修飾的方法 ,final 修飾的方法 不能被重寫
私有的屬性和方法不能被繼承
爲何要重寫:
1. 父類的功能,子類不必定須要,或不必定知足;
2. @override
一種事物的多種形態
繼承是多態的前提,類型轉換異常
何爲多態性
父類的引用指向子類的對象(子類的對象賦給父類的引用)
子類重寫父類的方法,執行子類的方法
編譯看左,運行看右
方法的多態,屬性沒有多態
static 修飾變量
static 修飾方法:
可經過類名 .方法 類名 .屬性 調用
修飾代碼塊:初始化變量 ,只執行一次
靜態導入包
import static java.lang.Math.random; class Person{ public static void main(String[] args){ System.out.print(random()); } }
abstract 修飾
修飾方法:抽象方法
修飾類:抽象類
抽象類中能夠沒有抽象方法,但有抽象方法的類必定是抽象類
抽象類不能建立實例對象,用來讓子類繼承
抽象方法:只有方法的聲明,沒有方法體,子類來重寫實現
子類繼承抽象類,則該子類必須重寫抽象類中的抽象方法,否則,該子類也要聲明爲抽象類
存在構造器
定義:就是在類內部定義一個類
public class Outer{ public void out(){ System.out.print("外部類方法"); } class Inner{ public void in(){ System.out.print("內部類方法"); } } }
分類