大數據<javaSE + Linux精英實訓班>_day_08
阿新 • • 發佈:2018-03-24
boolean 等待 小汽車 執行 負責 正在 AR [] day
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 classCarTest { 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