1. 程式人生 > >java 上機實踐四 類與物件

java 上機實踐四 類與物件

實驗一,機動車:

實驗目的:理解類和物件的屬性和公能

主類

public class Main{
	public static void main(String args[]){
		Vehicle car1=new Vehicle();
		Vehicle car2=new Vehicle();
		
		car1.setPower(128);
		car2.setPower(76);
		System.out.println("car1的功率為  " + car1.getPower());
		System.out.println("car2的功率為  " + car2.getPower());
		
		car1.speedUp(10);
		car2.speedUp(80);
		System.out.println("car1目前的速度為   "+car1.getSpeed());
		System.out.println("car2目前的速度為   "+car2.getSpeed());
		
		car1.speedDown(10);
		car2.speedDown(20);
		System.out.println("car1目前的速度為   "+car1.getSpeed());
		System.out.println("car2目前的速度為   "+car2.getSpeed());
	}
}

Vehicle類

public class Vehicle {
	double speed;
	int power;
	
	void speedUp(int s){
		speed+=s;
		if(speed>200){
			System.out.println("請減速慢行");
			speed=200;
		}
	}
	void speedDown(int s){
		speed-=s;
		
	}
	void setPower(int p){
		power=p;
	}
	int getPower(){
		return power;
	}
	double getSpeed(){
		return speed;
	}
}

實驗二,家中的電視:

實驗目的:掌握物件的組合以及資料的傳遞

TV . java

public class TV {
	int channel;
	void setChannel(int s){
		if(s<1)
			System.out.println("頻道數錯誤");
		else
			channel=s;
	}
	
	int getChannel(){
		return channel;
	}
	
	void showProgram(){
		switch(channel){
		case 1:System.out.println("綜合頻道");break;
		case 2:System.out.println("經濟頻道");break;
		case 3:System.out.println("國際頻道");break;
		case 4:System.out.println("體育頻道");break;
		
		default:System.out.println("不能收看");
		}
	}
}

Family . java

public class Family {
	TV homeTV;
	void buyTV(TV tv){
		homeTV=tv;
	}
	void remoteControl(int m){
		homeTV.setChannel(m);
	}
	void seeTV(){
		homeTV.showProgram();
	}
}

主類:
public class Main{
	public static void main(String args[]){
		TV haierTV=new TV();
		haierTV.setChannel(2);
		System.out.println("haierTV的頻道為 "+ haierTV.getChannel());
		
		
		Family zhangSanFamily=new Family();
		zhangSanFamily.buyTV(haierTV);
		System.out.println("張三開始看電視");
		zhangSanFamily.seeTV();
		
		int m=1;
		System.out.println("張三將電視節目更換到"+ m+ "頻道");
		zhangSanFamily.remoteControl(m);
		System.out.println("haier電視的節目"+haierTV.getChannel());
		System.out.println("張三在看電視的節目");
		zhangSanFamily.seeTV();
	}
}

實驗三,飲用水:

實驗目的:掌握類變數和例項變數,類方法和例項方法的區別

例項變數

  1. 例項變數宣告在一個類中,但在方法、構造方法和語句塊之外;
  2. 當一個物件被例項化之後,每個例項變數的值就跟著確定;
  3. 例項變數在物件建立的時候建立,在物件被銷燬的時候銷燬;
  4. 例項變數的值應該至少被一個方法、構造方法或者語句塊引用,使得外部能夠通過這些方式獲取例項變數資訊;
  5. 例項變數對於類中的方法、構造方法或者語句塊是可見的。一般情況下應該把例項變數設為私有。通過使用訪問修飾符可以使例項變數對子類可見;
  6. 例項變數具有預設值。數值型變數的預設值是0,布林型變數的預設值是false,引用型別變數的預設值是null。變數的值可以在宣告時指定,也可以在構造方法中指定;
  7. 例項變數可以直接通過變數名訪問。但在靜態方法以及其他類中,就應該使用完全限定名:ObejectReference.VariableName。

類變數(靜態變數)

  1. 類變數也稱為靜態變數,在類中以static關鍵字宣告,但必須在方法構造方法和語句塊之外。
  2. 無論一個類建立了多少個物件,類只擁有類變數的一份拷貝。
  3. 靜態變數除了被宣告為常量外很少使用。常量是指宣告為public/private,final和static型別的變數。常量初始化後不可改變。
  4. 靜態變數儲存在靜態儲存區。經常被宣告為常量,很少單獨使用static宣告變數。
  5. 靜態變數在程式開始時建立,在程式結束時銷燬。
  6. 與例項變數具有相似的可見性。但為了對類的使用者可見,大多數靜態變數宣告為public型別。
  7. 預設值和例項變數相似。數值型變數預設值是0,布林型預設值是false,引用型別預設值是null。變數的值可以在宣告的時候指定,也可以在構造方法中指定。此外,靜態變數還可以在靜態語句塊中初始化。
  8. 靜態變數可以通過:ClassName.VariableName的方式訪問。
  9. 類變數被宣告為public static final型別時,類變數名稱必須使用大寫字母。如果靜態變數不是public和final型別,其命名方式與例項變數以及區域性變數的命名方式一致。

Village。java

public class Village {
	static int waterAmount;
	int peopleNumber;
	String name;
	Village(String s){
		name=s;
	}
	static void setWaterAmount(int s){
		waterAmount=s;
	}
	
	
	void drinkWater(int s){
		if(waterAmount-s>0){
			waterAmount-=s;
			System.out.println(name + " 喝了 "+s+" L 水");
		}
		else{
			System.out.println(name + " 喝了 "+waterAmount+" L 水");
			waterAmount=0;
		}
	}
	
	static int loolWaterAmout(){
		return waterAmount;
	}
	void setPeople(int n){
		peopleNumber=n;
	}
	int getPeople(){
		return peopleNumber; 
	}
}

主類:
public class Main{
	public static void main(String args[]){
		Village.setWaterAmount(200);
		int leftWater=Village.loolWaterAmout();
		System.out.println("井裡面還有  "+leftWater+" L 水");
		
		Village zhaoZhuang=new Village("趙莊");
		Village maJiaHeZhi=new Village("馬家河子");
		zhaoZhuang.setPeople(80);
		maJiaHeZhi.setPeople(120);
		
		zhaoZhuang.drinkWater(50);
		leftWater=maJiaHeZhi.loolWaterAmout();
		String name=maJiaHeZhi.name;
		System.out.println(name+" 發現井裡面剩下 "+leftWater+" L 水");
		
		zhaoZhuang.drinkWater(100);
		leftWater=maJiaHeZhi.loolWaterAmout();
		name=zhaoZhuang.name;
		System.out.println(name+" 發現井裡面剩下 "+leftWater+" L 水");

		System.out.println("趙莊的人口 "+zhaoZhuang.getPeople());
		System.out.println("馬家河子的人口 "+maJiaHeZhi.getPeople());
	}
}


相關推薦

java 上機實踐 物件

實驗一,機動車: 實驗目的:理解類和物件的屬性和公能 主類 public class Main{ public static void main(String args[]){ Vehicle car1=new Vehicle(); Vehicle car2=ne

java程式設計入門9 物件

面向物件程式設計三大特性 1.封裝 1)也就是把客觀的事物封裝成抽象的類,並且類可以把自己的屬性方法只讓可信的類和物件操作,對不可信的隱藏內部細節。 2)類通常對客戶隱藏其實現細節。 3)採用封裝的思想保證了類內部資料結構的完整性。 2.繼承 1)派生類(子類)可以通過繼承基類(超類或父類)來擁有

Java之路:物件

一、類 將具有相同屬性及相同行為的一組物件稱為類(class)。廣義地講,具有共同性質的事物的集合就稱為類。 在面向物件程式設計中,類是一個獨立的單位,它有一個類名,其內部包括成員變數,用於描述物件的屬性;還包括類的成員方法,用於描述物件的行為。 在Java程式設計中,類被認為是

Java for Selenium | 理解物件

                                         理解Java的類與物件 類與物件是面向物件程式語言中最重要的一個基本概念,Java也不例外。理解了類與物件的概念,學習起Java來就會容易很多。 本篇為大家介紹java類與物件的概念。在我們

Java中的集合物件的判空

1.集合類Array、List、Map、Set的判空 a.List進行判空 //判斷關聯的積分項是否為空,若不為空,則插入資料庫 if(pointsItemList != null && !pointsItemList.isEmp

JAVA基礎第章-集合框架Collection篇 JAVA基礎第一章-初識java JAVA基礎第二章-java三大特性:封裝、繼承、多型 JAVA基礎第三章-物件、抽象、介面 記一次list迴圈刪除元素的突發事件!

 業內經常說的一句話是不要重複造輪子,但是有時候,只有自己造一個輪子了,才會深刻明白什麼樣的輪子適合山路,什麼樣的輪子適合平地! 我將會持續更新java基礎知識,歡迎關注。   往期章節: JAVA基礎第一章-初識java JAVA基礎第二章-java三大特性

【計算機基礎】Java學習篇() 認識物件(打包器、陣列和字串)

介紹完基本型別,下面介紹類型別。 瞭解物件與參考的關係,認識打包器,以及陣列物件、字串物件。 一、類與物件       1.建立類          編寫程式需要使用物件(Object),產生物件必須先定義類(Class),類就像是設計圖,而物件是類

JAVA基礎第五章-集合框架Map篇 JAVA基礎第一章-初識java JAVA基礎第二章-java三大特性:封裝、繼承、多型 JAVA基礎第三章-物件、抽象、介面 JAVA基礎第章-集合框架Collection篇

 業內經常說的一句話是不要重複造輪子,但是有時候,只有自己造一個輪子了,才會深刻明白什麼樣的輪子適合山路,什麼樣的輪子適合平地! 我將會持續更新java基礎知識,歡迎關注。   往期章節: JAVA基礎第一章-初識java

JAVA(雜記) -- 物件

東西太多,先寫在程式碼裡了,以後有時間整理public class Main { public static void main(String[] args) { Employee e1 = new Employee("lyy

Java學習筆記(物件

1. 類與物件: 從語義上理解,類是物件的模板,物件是類的例項,從語法上理解,類是一種資料型別,物件是這種型別的變數。在類的內部,方法可以直接訪問該類的私有變數,但對於外部的類,則不可。注意類中的欄位預設為private。 2. 成員方法的修飾: public,pri

JAVA——第章——物件

接著上一篇部落格的總結,我已經學習並總結到了JAVA的類構造器,接著學習並總結。 四 . 將訊息傳給方法或構造器 引數即是將資料傳送給方法或構造器的媒介。形參是指方法宣告中的變數列表,而實參是方法呼叫時實際傳遞的值。呼叫方法時,所使用的實參與宣告中形參的型別

3.Java面向物件程式設計OOA/OOP/OOD/OOAD()/UML圖、函數語言程式設計Scala(JVM)---物件、封裝繼承多型、構造方法、覆寫/重寫/override

一、緒論 1.面向物件程式設計正規化(C++、Java、Go)------能進行現實生活的抽象。             每個物件都是一個類。類中包含屬性與方法。 OOA:面向物件分析 OOP:面向物件程式設計

Java物件練習題

1.建立一個Test類,包含有一個public許可權的int型成員變數與一個char型別的成員變數,觀察在main方法中的初始值。 public class StrTest { public int x; public char ch; public static vo

Java——物件

面向物件程式設計正規化(C++,Java,Go語言) 能進行對現實生活的抽象每個物件(類)都有自己的屬性和方法 1.面向物件程式設計的三大特徵 a.封裝性: 將客觀事物封裝成抽象的類,每個類都有自己的屬性以及方法,並且類可以讓自己的方法和屬性只讓可信的類或物件操作,對不可信的進行資訊

Java第五週學習總結——物件的總結

教材學習內容總結 1.面向過程與面向物件 1.1 面向過程: 以C語言為例,源程式由若干個書寫形式互相獨立的函式組成。編寫程式碼時不必考慮機器指令細節,其語法更加貼近自然語言,語言的核心為編寫解決某個問題的程式碼塊; 1.2 面向物件: 易維護、易擴充套件、易複用。語言核心為物件

Java 面向物件-物件

Java面向物件-類與物件   類與物件的關係 我們通俗的舉個例子,比如人類是一種類,張三這個人就是人類的具體的一個個體,也就是java中的物件;這就是一個類與物件的關係;   類的定義 下面看例項   類的建立和使用 package com.xuyiga

java之面向物件思想、物件的概述

1:面向物件思想: 面向物件是基於面向過程的程式設計思想 面向過程:強調的是每一個功能的步驟 面向物件:強調的是物件,然後由物件去呼叫功能 2:面向物件的思想特點: A:是一種更符合我們思想習慣的思想 B:可以將複雜的事情簡單化 C:將

Java中的組織形式、物件、靜態的static關鍵字、最終的final關鍵字、方法傳參方式、遞迴(階乘、斐波那契數列、漢諾塔)

Java程式的組織形式 Java程式需要把程式碼以類的形式組織起來,然後被Java編譯器編譯,再被JVM執行。Java程式是以類的結構為基礎的。 Java程式的基本要素 識別符號 識別符號命名規範 關鍵字(保留字) 關鍵字(保留字)具有專門的意義和用途

JAVA複習 物件

總體框架 public   class Rectangle() { 1\private double width; 2\private double length; 3\public Rectangle(double width,double length) 4\p

java學習(物件) 第二更 建立汽車物件 並錄入汽車資訊

最近學習了java的類與物件。 java面向物件程式設計的有三大特徵: ①封裝性 所謂封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者 物件操作,對不可信的進行資訊隱藏。簡而言之就是,內部操作對外部而言不可見(保護性) ②繼承性 繼承是指它可以使用現有類的所