大家可以關注一下我的博客 我的博客所有隨筆都是我從基礎開始學習java的所有知識點
類(Class)的概念
類是對一組具有相同特征和行為的對象的抽象描述。
理解:
[1] 類包含了兩個要素:特性和行為 => 同一類事物具有相同的特征和行為。
[2] 類是一個群體性概念。例如:網紅、明星、草根、宅男、蘿莉、沙雕
[3] 類可以理解為現實生活中所說的 “類型”
為什么會有類的概念?
現實生活中為了更好的區分事物,把事物進行歸類,進而更好的認識事物。
在程序中,引入類的概念,就是為了快速生成更多的具有相同特性和行為的事物
對象的概念
對象是類的具體實現,表示一個獨立的、唯一的個體。
理解
[1] 對象是通過類生成的。對象一定具備該類的特性和行為。
[2] 對象是個體。類是群體。=> 對象是獨立的、唯一的。=> 屬於同一類型的對象也是相互獨立的。
類和對象的區別
類是抽象的,是一個群體概念。對象是具體的,是一個獨立個體。
一個獨立的對象一定屬於某個類。理解為類包含對象
屬性
類或者對象具有的特征在程序中稱為屬性(property/attribute)
具體對象的屬性擁有的數據稱為屬性值。
屬於同一類對象都具有相同的屬性,但各個對象都擁有各自的屬性值。這些屬性值區分了不同的對象。
方法
類或者對象的行為稱為方法(Method)
在java中
類是具有相同屬性和方法的對象的集合。
對象是用來描述客觀事物的一個實體,由一組屬性和方法構成。
類是對象的類型。
屬性的聲明
[修飾符] 屬性類型 屬性名稱 [=默認值] |
在定義成員變量時可以對其初始化,如果不對其初始化,Java使用默認的值對其初始化。(數值:0,0.0 char:\u0000, boolean:false, 所有引用類型:null)
屬性/成員變量的作用域范圍是整個類體。
定義類和對象
開發者可以根據需要自定義類,語法
案例:定義一個類,實例化對象
//類:學生 屬性:學號,名字,年齡,性別 方法:1. learn 2. showInfo //創建一個類,Student類的名字{屬性{方法}} public class Student { //聲明類的屬性;【修飾符】+數據類型+變量名+【默認值】【】可省略 //一般修飾符省略,默認值不賦值, String sid;//學號 String name;//名字 int age;//年齡 char gender;//性別 //聲明方法public void 方法名(數據類型 變量名名) public void learn(String cName){//cName是方法本身的變量(局部變量)只在方法本身使用 System.out.println(cName+"名字為:"+name+"學號為:"+sid+"年齡為:"+age+"性別為:"+gender);//輸出(變量名) }//方法本身沒變量,屬性值遍歷輸出 public void showInfo(){ System.out.println(name); System.out.println(sid); System.out.println(age); System.out.println(gender); } }
//類:學生 屬性:學號,名字,年齡,性別 方法:1. learn 2. showInfo public class Huang01 { public static void main(String[] args){ //通過Student類創建對象 //Student stu; //stu = new Student(); // stu是Student類的一個對象,也是Student的一個實例 //new 操作就是實例化過程 Student stu =new Student(); stu.name="張三";//給屬性賦值 對象名.屬性名=屬性值 stu.sid="1235"; stu.gender='男'; stu.age=20; //調用方法,對象名.方法名() stu.learn("輸出效果--");//方法本身有變量就需要輸入數值,沒有括號為空 stu.showInfo(); Student stu2 =new Student(); stu2.name="李四";/ stu2.sid="123"; stu2.gender='男'; stu2.age=25; stu2.learn("輸出效果--"); stu2.showInfo(); } }

局部變量和成員變量
如果在一個作用域中,局部變量和成員變量同名,局部變量的優先級更高。
局部變量在其所在的作用域有效,出了作用域就無效。
成員變量:在方法外部,類的內部定義的變量稱為類的成員變量,簡稱成員變量。有些地方把屬性稱為filed(字段)
成員變量必須通過類的實例/對象調用,例如 stu.name ,有時成員變量也稱為實例變量。
成員變量 == 屬性 == 字段 == 實例變量
類中包含兩個成員:成員變量和成員方法。
//需求:用手機播放一首歌曲
//創建CellPhone類 public class CellPhone { String brand ; String pigment; String tupe; float price; public void adm(){ System.out.println("手機品牌:"+brand); System.out.println("手機顏色:"+pigment); System.out.println("手機型號:"+tupe); System.out.println("手機價格:"+price); }//class括號內為成員變量,方法內的變量為局部變量 }
//創建Music類
public class Music {
String name;
String actor;
int times;
String content;
public void showInfo(){
System.out.println(name);
System.out.println("演唱者:"+actor);
int a=times/3600;
int b=times%3600/60;
int c=times%60;
System.out.println("時間"+a+":"+b+":"+c); 時間為s,所以 小時:分鍾:秒
System.out.println(content);
}
}
public class Huang02 {
public static void main(String [] args) {
CellPhone music=new CellPhone();
music.brand="OPPO";
music.pigment="紅色";
music.tupe="R21";
music.price=9999;
music.adm();
Music music1=new Music();
music1.name="那2002年的第一次雪";
music1.actor="刀郎";
music1.times=600; //時間為s
music1.content="那2002年的第一次雪";
music1.showInfo();
}
}

總結
面向對象編程就是完成一個復雜的需求需要各個對象之間相互配合完成。對象的創建需要定義類型,java程序就是通過類來組織程序的。
java中一切都是對象。
抽象的概念
根據業務中的對象抽象成計算機可識別的類,簡單的說就是抽出各個對象像的部分。
抽象的步驟
[1] 發現類(歸類)。類一般用名詞。
[2] 發現類的屬性(特征)。屬性一般用名詞。發現類的屬性時,一般只放和業務相關的屬性。
[3] 發現類的方法(行為)。方法一般是動詞。只放和業務相關的方法。
抽象一個下載類。
[1] DownLoad類
[2] url/name/size/progress/type/location…
[3] start()/pause()/stop()/delete()…