物件導向的思想的建立:
1. 人在黑板上畫圓,畫圓的方法屬於誰?答案:圓
首先,這裡涉及到三個對 象:person、blackground、circle,人在黑板上畫圓,不能是人去畫的圓,因為圓的圓心座標,半徑這些資料是圓這個物件所具有的屬 性,所以畫圓的方法應該屬於圓。而人只是利用圓的資料來畫的圓。也不可能是黑板,黑板只是呈現圓的乙個載體
classperson
private string name;
private int age;
classbackground
private int width;
private int height;
private color color;
classcircle
private point p;
private double radius;
public circle(point p, double radius) {
this.p = p;
this.radius = radius;
public void drawcircle(point p, double raduis){
//畫圓的方法
2. 列車剎車,剎車的方法是屬於誰的?答案:列車
分析:有train、person兩個物件,列車剎車,列車自己具備了剎車的功能,有乙個離合器和剎車,人只是作用在這上面,人踩下剎車使列車停下來,而不是不使列車停下來的,所以這個剎車的方法是屬於列車的
classperson
private string name;
private int age;
classtrain
private double speed;
private double length;
private double width;
private double height;
public void braketrain() {
//列車具有乙個剎車的方法
3. 人關門,關門的方法屬於誰?答案:門
分析:這裡涉及到person、door兩個物件,人關門,人只是退了門一下,對門用了乙個力,然後門沿著轉軸旋轉,鎖舌遇到障礙以後收回,然後在彈簧的作用下彈回到鎖盒中,從而門就這樣子關上了,所以關門的方法應該是屬於們的
classperson
private string name;
private int age;
classdoor
public void closedoor() {
4. 球從繩子的一端移動到另一端。用物件導向的思想設計類
分析:看似這兩個物件rope、ball之間並沒有什麼實際的聯絡,但是繩子可以看為是一條直線,球從一端移動到另一端,直線是由乙個個的點組成的,球移動的軌跡也是乙個個的點,從而繩子有乙個產生下乙個點的方法,球每移動到乙個點則就去詢問繩子下乙個點的座標在**
class rope
private point start;
private point end;
public rope(point start, point end) {
this.start = start;
this.end = end;
public point nextpoint(point currentpoint) {
//通過2個點可以確定一條直線
classball
private rope rope;
private point currentpoint;
public ball(rope rope, point startpoint) {
this.rope = rope;
this.currentpoint = startpoint;
public void move() {
currentpoint =rope.nextpoint(currentpoint);
system.out.println("小球移動到了"+ currentpoint);
5.兩塊石頭磨成一把刀,石刀可以砍樹,砍成木材,木材做成椅子,用物件導向的思想設計類
分析:這裡有stone、knife、tree、material、chair
classstone
public stone() {
classknife
public knife() {
class materia
public meteria() {
classtree
public tree() {
classchair
public chair() {
classstoneknife
public stoneknife() {
public materia cuttree(tree tree) {
//砍樹
classknifefactory
private knifefactory() {
private stoneknife stoneknife;
private static knifefactory instance = newknifefactory();
public knifefactory getinstance() {
return instance;
public stoneknife createknife(stone one, stonetwo) {
//製作石刀
classchai***ctory
private chai***ctory(){
private meteria meteria;
private static chai***ctory instance = newchai***ctory();
public chai***ctory getinstance() {
return instance;
public chair makechair(meteria meteria) {
//製作椅子
總結:誰擁有資料,誰就對外提供操作這些資料的方法
使用物件導向的方法來設計我們的程式,可以大大的簡化我們的**,並且使我們的思路的更為清晰
Java物件導向的思想
通常認為封裝是把資料和運算元據的方法繫結起來,對資料的訪問只能通過已定義的介面.物件導向的本質就是將現實世界描繪成一系列完全自治的 封閉的物件.我們在類中編寫的方法就是對實現細節的一種封裝,我們編寫乙個類就是對資料和資料操作的一種封裝,可以說,封裝就是隱藏一切可隱藏的東西,只向外界提供最簡單的程式設...
java物件導向思想
物件導向設計把握乙個重要的經驗 誰擁有資料,誰就對外提供操作這些資料的方法。再牢牢掌握幾個典型的案例就可以了,人在黑板上畫圓,列車司機緊急剎車,售貨員統計收穫小票的金額,你把門關上了等。兩個物件導向的測試題 兩塊石頭磨成一把石刀,石刀可以砍樹,砍成木材,木材做成椅子。球從一根繩子的一端移向另一端。人...
java物件導向思想
一 封裝 封裝是保證軟體部件具有優良的模組性的基礎,封裝的目標就是要實現軟體部件的 高內聚 低耦合 防止程式相互依賴性而帶來的變動影響。在物件導向的程式語言中,物件是封裝的最基本單位,物件導向的封裝比傳統語言的封裝更為清晰 更為有力。物件導向的封裝就是把描述乙個物件的屬性和行為的 封裝在乙個 模組 ...