標籤:賦值 ... 大數 棧記憶體 類對象 面向過程 代碼實現 類的屬性 取值
1:物件導向->物件導向和面向過程的思想 都是我們編寫程式的一種方式。 面向過程:這種程式設計方式,遇到事情思考:"我該怎麼做",然後一步步實現的過程。 典型的c語言就是。 物件導向:這種程式設計方式,遇到事情思考:"我改讓誰來做",然後那個誰就是對象。 他要怎麼做這件事是他自己的事,反正到最後合力把事做好就可以了。 找不到人,就建立這個人。java語言就是。
2:物件導向->代碼實現
大象裝冰箱總共分幾步
開門 把大象裝進去(儲存大象-> java的功能) 關門
分析:
具體存在哪些事物:冰箱、大象
java語言就是描述現實生活中事物的
class 冰箱{
開門(){
}
關門(){
}
儲存大象(大象 d){
}
}
class 大象(){
}
public static void main(String[] args){
冰箱 XX = new 冰箱(); // 冰箱就真的存在了
大象 YY = new 大象(); // 大象也存在了
// 調用功能
XX.開門();
XX.儲存大象(YY);
XX.關門();
}
3:物件導向->局部變數與成員變數的區別
package com.itstar.demo01;public class Car { // Car的組成部分:屬性和方法 // 需要駕駛它 // 顏色 String color; // 輪子 int count; // 定義跑的功能 public void run() { System.out.println("小汽車正在跑" + "..." + color + ".." + count); }}
package com.itstar.demo01;public class CarTest { public static void main(String[] args) { // 建立Car類的變數 Car c = new Car(); c.color = "red"; c.count = 4; c.run(); }}
package om.itstar.demon02;public class Car { String color; int count; public void run() { System.out.println("小汽車正在跑" + color + "..." + count); }}
package om.itstar.demon02;/* * 成員變數與局部變數的區別: * * 1、定義位置上的區別 * 成員變數,定義在類中,方法外 * 局部變數,方法內,語句內 * 2、範圍不同 * 成員變數,作用範圍是整個類 * 局部變數,方法內,語句內 * 3、預設值不同 * 成員變數有自己的預設值的 * 局部變數沒有預設值,不賦值不能使用 * 4、記憶體位置不同 * 成員變數,跟隨對象進入堆記憶體內進行儲存 * 局部變數,跟隨自己的方法進入棧記憶體 * 5、生命週期不同 * 成員變數,跟隨對象,在堆記憶體中儲存。記憶體等待JVM清理,生命週期較長 * 局部變數,跟隨方法,方法執行完要出棧。生命週期較短。 * */public class CarTest {}
package com.itstar.demon03;public class Person { String name;}
package com.itstar.demon03;public class PersonTest { public static void main(String[] args) { int a = 1; function(a); System.out.println(a); // 1 } public static void function(Person p) { p.name = "韋桂金"; } public static void function(int a) { a += 3; }}
package com.itstar.demon04; /* * 描述人的這個事物: * 屬性:姓名 年齡 * 方法:說話 * * 新的關鍵字:private 私人的屬於成員修飾符 不能修飾局部變數 * 被private修飾,只能在自己的本類中使用->許可權修飾 * * 對私人的變數,提供了公用的訪問方式:方法 */public class Person { // 人的姓名,成員變數 String name; // 人的年齡,成員變數 ->安全問題 負責(不會導致程式掛掉)但是違背了現實的情況 private int age; // 變數age被我們私人,提供方法讓外部類使用 public void setAge(int a) { // 對a進行範圍的限制 if(a < 0 || a > 200) { age = 18; }else { age = a; } } // 定義方法,對變數age擷取值使用 public int getAge() { return age; } // 定義人說話的功能 public void speak() { System.out.println(name + "..." + age + "在說話中"); }}
package com.itstar.demon04;/* * 建立對象,對象調用自訂類的屬性和方法 */public class PersonTest { public static void main(String[] args) { // 建立person類對象 Person p = new Person(); // 對成員變數進行賦值 p.setAge(42); p.name = "huern"; p.speak(); System.out.println(p.getAge()); }}
package com.itstar.demo05;import javax.swing.plaf.synth.SynthSeparatorUI;/* * 類描述人: * 屬性:姓名 年齡 * 方法:說話 */public class Person { private String name; private int age; // get當中不用加this因為沒有同名變數 public String getName() { return name; } // 成員變數name age的賦值 public void setName(String name) { this.name = name; // 增加閱讀性,把局部變數賦值給他成員變數 } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void spek() { String name = "歐文 "; int age = 51; //System.out.println(this); System.out.println("人在說話" + this.name + "..." + this.age); } }
package com.itstar.demo05;/* * 測試類別 */public class TestPerson { public static void main(String[] args) { // 建立對象 Person p = new Person(); // 調用set方法,對成員變數賦值 p.setAge(18); p.setName("李總"); p.spek(); }}
package om.itstar.demo06;public class Person { private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public boolean compare(Person p) { // p1.age > p2.age? this是誰?誰調用的就是誰p1 return this.age > p.age; }}
package om.itstar.demo06;public class TestPerson { public static void main(String[] args) { // 測試Person類中的年齡比較功能 Person p1 = new Person(); Person p2 = new Person(); p1.setAge(20); p2.setAge(15); boolean b = p1.compare(p2); System.out.println(b); }}
大資料<javaSE + Linux精英實訓班>_day_08