大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Java教程
Java標(biāo)識(shí)符與關(guān)鍵字
Java變量
Java數(shù)據(jù)類(lèi)型
Java運(yùn)算符
Java控制語(yǔ)句
Java方法

Java基礎(chǔ)編程練習(xí)題

十、 Java封裝練習(xí)題

● 定義“人”類(lèi),“人”類(lèi)包括這些屬性:姓名、性別、年齡等。使用封裝的方式編寫(xiě)程序,要求對(duì)年齡進(jìn)行安全控制,合法的年齡范圍為[0~100],其他值表示不合法。

public class People {
	private String name;
	private boolean sex;
	private int age;
	public String getName() {
		return name;
	}
	public void setName(String _name) {
		name = _name;
	}
	public boolean isSex() {
		return sex;
	}
	public void setSex(boolean _sex) {
		sex = _sex;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int _age) {
		if(_age < 0 || _age > 100){
			throw new RuntimeException("年齡不合法!");
		}
		age = _age;
	}
}
public class PeopleTest {
	public static void main(String[] args) {
		People p = new People();
		p.setName("張三");
		p.setAge(20);
		p.setSex(true);
		
		System.out.println("姓名 = " + p.getName());
		System.out.println("性別 = " + (p.isSex() ? "男" : "女"));
		System.out.println("年齡 = " + p.getAge());
		
		p.setAge(-100);
	}
}
執(zhí)行結(jié)果如下圖所示:

Java開(kāi)發(fā)

十一、 this和static關(guān)鍵字練習(xí)題

● 選擇題(B)

public class Test {
	static int value = 9;
	public static void main(String[] args) throws Exception{
		new Test().printValue();
	}
	public void printValue(){
		int value = 69;
		System.out.println(this.value);
	}
}
A. 編譯錯(cuò)誤

B. 打印9

C. 打印69

D. 運(yùn)行時(shí)拋出異常

● 判斷下面代碼的輸出結(jié)果,并說(shuō)明原因

public class User {
	private String name;
	public User(){
	}
	public void setName(String name){
		name = name;
	}
	public String getName(){
		return name;
	}
}
public class UserTest {
	public static void main(String[] args) {
		User user = new User();
		user.setName("zhangsan");
		System.out.println(user.getName());
	}
}
最終的輸出結(jié)果是:null

原因:setName方法體當(dāng)中的name = name是把局部變量name賦值給局部變量name,和實(shí)例變量name無(wú)關(guān),所以getName()方法獲取的實(shí)例變量值是null。

● 找出下面代碼的錯(cuò)誤,并說(shuō)明為什么錯(cuò)了

public class Test {
	int i;
	static int j;
	public void m1(){
		System.out.println(i);
		System.out.println(j);
		m2();
		m3();
	}
	public void m2(){
	}
	public static void m3(){
		System.out.println(i);
		System.out.println(j);
		m2();
		m4();
	}
	public static void m4(){
	}
}
第13,15行編譯報(bào)錯(cuò),因?yàn)殪o態(tài)方法中無(wú)法直接訪(fǎng)問(wèn)實(shí)例變量i和實(shí)例方法m2()。

十二、Java繼承練習(xí)題

●  定義猴子類(lèi),猴子有名字和性別等屬性,并且定義猴子說(shuō)話(huà)的方法,定義人類(lèi),人有名字和性別等屬性,并且定義人說(shuō)話(huà)的方法。使用繼承,讓代碼具有復(fù)用性。

public class Monkey {
	private String name;
	private boolean sex;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public boolean isSex() {
		return sex;
	}
	public void setSex(boolean sex) {
		this.sex = sex;
	}
	public Monkey() {
		super();
	}
	public Monkey(String name, boolean sex) {
		super();
		this.name = name;
		this.sex = sex;
	}
	public void speak(){
		System.out.println(name + "咿咿呀呀!");
	}
}
public class People extends Monkey{
	public void speak(){
		System.out.println(this.getName() + ",呦,小伙會(huì)說(shuō)話(huà)了!");
	}
}
● 定義動(dòng)物類(lèi),動(dòng)物有名字屬性,并且定義動(dòng)物移動(dòng)的方法,定義魚(yú)類(lèi),魚(yú)有名字屬性,有顏色屬性,并且定義魚(yú)移動(dòng)的方法。使用繼承,讓代碼具有復(fù)用性。
public class Animal {
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Animal() {
		super();
	}

	public Animal(String name) {
		super();
		this.name = name;
	}
	
	public void move(){
		System.out.println(name + " is moving!");
	}
}
public class Fish extends Animal{
	public void move(){
		System.out.println(this.getName() + "正在水里歡快的游來(lái)游去!");
	}
}
十三、 Java方法覆蓋和多態(tài)練習(xí)題

● 實(shí)現(xiàn)憤怒的小鳥(niǎo)

我們有很多種小鳥(niǎo),每種小鳥(niǎo)都有飛的行為,還有一個(gè)彈弓,彈弓有一個(gè)彈射的行為,彈射時(shí)把小鳥(niǎo)彈出去,之后小鳥(niǎo)使用自己飛行的行為飛向小豬(不要求編寫(xiě)小豬的代碼)。不同種類(lèi)的小鳥(niǎo)有不同飛行的方式:

紅火:紅色小鳥(niǎo),飛行方式:正常

藍(lán)冰:藍(lán)色小鳥(niǎo),飛行方式:分成3個(gè)

黃風(fēng):黃色小鳥(niǎo),飛行方式:加速。

//小鳥(niǎo)
public class Bird {
	//飛
	public void fly(){
		
	}
}
public class RedBird extends Bird{
	public void fly(){
		System.out.println("正常的飛翔");
	}
}
public class BlueBird extends Bird{
	public void fly(){
		System.out.println("變成了3只小鳥(niǎo)一起飛");
	}
}
public class YellowBird extends Bird{
	public void fly(){
		System.out.println("加速飛翔");
	}
}
//彈弓
public class Slingshot {
	//射
	public void shot(Bird bird){
		//鳥(niǎo)兒飛
		bird.fly();
	}
}
public class Test {
	public static void main(String[] args) {
		Bird redBird = new RedBird(); 
		Bird blueBird = new BlueBird(); 
		Bird yellowBird = new YellowBird(); 
		Slingshot ss = new Slingshot();
		ss.shot(redBird);
		ss.shot(blueBird);
		ss.shot(yellowBird);
	}
}
執(zhí)行結(jié)果如下圖所示:

Java應(yīng)用

● 計(jì)算不同類(lèi)型的員工薪資

定義員工類(lèi)Employee,員工包含姓名name、出生月份birthMonth兩個(gè)屬性,員工有獲取指定月份工資的方法(getSalary(int month)),如果該月員工生日,公司補(bǔ)助250元。

定義有固定工資的員工類(lèi)SalariedEmployee,有月薪monthlySalary屬性。

定義小時(shí)工類(lèi)HourlyEmployee,包含工作小時(shí)數(shù)hours和每小時(shí)的工資hourlySalary屬性,如果每月工作超過(guò)160小時(shí),超過(guò)的部分按1.5倍工資發(fā)放。

定義銷(xiāo)售人員類(lèi)SalesEmployee,包含月銷(xiāo)售額sales和提成比例comm屬性。

public class Employee {
	private String name;
	private int birthMonth;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getBirthMonth() {
		return birthMonth;
	}
	public void setBirthMonth(int birthMonth) {
		this.birthMonth = birthMonth;
	}
	public double getSalary(int month){
		return 0.0;
	}
}
public class SalariedEmployee extends Employee {
	private double monthlySalary;
	public double getMonthlySalary() {
		return monthlySalary;
	}
	public void setMonthlySalary(double monthlySalary) {
		this.monthlySalary = monthlySalary;
	}
	public double getSalary(int month){
		if(month == this.getBirthMonth()){
			return monthlySalary + 250;
		}
		return monthlySalary;
	}
}
public class HourlyEmployee extends Employee {
	private int hours;
	private double hourlySalary;
	public int getHours() {
		return hours;
	}
	public void setHours(int hours) {
		this.hours = hours;
	}
	public double getHourlySalary() {
		return hourlySalary;
	}
	public void setHourlySalary(double hourlySalary) {
		this.hourlySalary = hourlySalary;
	}
	public double getSalary(int month){
		double money = 0.0;
		if(hours <= 160){
			money = hourlySalary * hours;
		}else{
			money = hourlySalary * 160 + hourlySalary * (hours - 160) * 1.5;
		}
		if(month == this.getBirthMonth()){
			money += 250;
		}
		return money;
	}
}
public class SalesEmployee extends Employee {
	private double sales;
	private double comm;
	public double getSales() {
		return sales;
	}
	public void setSales(double sales) {
		this.sales = sales;
	}
	public double getComm() {
		return comm;
	}
	public void setComm(double comm) {
		this.comm = comm;
	}
	public double getSalary(int month){
		if(month == this.getBirthMonth()){
			return sales * comm + 250;
		}
		return sales * comm;
	}
}
public class Test {
	public static void main(String[] args) {
		SalariedEmployee e1 = new SalariedEmployee();
		e1.setName("張三");
		e1.setBirthMonth(2);
		e1.setMonthlySalary(5000.0);
		System.out.println(e1.getName() + "的2月份工資是" + e1.getSalary(2));
		HourlyEmployee e2 = new HourlyEmployee();
		e2.setName("李四");
		e2.setBirthMonth(2);
		e2.setHourlySalary(50);
		e2.setHours(170);
		System.out.println(e2.getName() + "的2月份工資是" + e2.getSalary(2));
		SalesEmployee e3 = new SalesEmployee();
		e3.setName("王五");
		e3.setBirthMonth(2);
		e3.setSales(10000.0);
		e3.setComm(0.5);
		System.out.println(e3.getName() + "的2月份工資是" + e3.getSalary(2));
	}
}
執(zhí)行結(jié)果如下圖所示:

Java應(yīng)用

●  某汽車(chē)租賃公司有多種汽車(chē)可以出租,計(jì)算汽車(chē)租金

Vehicle是所有車(chē)的父類(lèi),屬性:品牌、車(chē)牌號(hào),有返回總租金的方法:public double getSumRent(int days){}

小轎車(chē)類(lèi)Car是Vehicle的子類(lèi),屬性:車(chē)型(兩廂、三廂、越野),兩廂每天300,三廂每天350,越野每天500。

多座汽車(chē)類(lèi)Bus是Vehicle的子類(lèi),屬性:座位數(shù),座位數(shù)<=16的每天400,座位數(shù)>16的每天600。

編寫(xiě)測(cè)試類(lèi),根據(jù)用戶(hù)選擇不同的汽車(chē),計(jì)算總租金。

public class Vehicle {
	private String brand;
	private String licensePlateNumber;
	public String getBrand() {
		return brand;
	}
	public void setBrand(String brand) {
		this.brand = brand;
	}
	public String getLicensePlateNumber() {
		return licensePlateNumber;
	}
	public void setLicensePlateNumber(String licensePlateNumber) {
		this.licensePlateNumber = licensePlateNumber;
	}
	public Vehicle() {
		super();
	}
	public double getSumRent(int days){
		return 0.0;
	}
}
public class Car extends Vehicle {
	
	//車(chē)型:兩廂(300/天)、三廂(350/天)、越野(500/天)
	private String models;

	public String getModels() {
		return models;
	}

	public void setModels(String models) {
		this.models = models;
	}

	public Car() {
		super();
	}
	
	public double getSumRent(int days){
		if("兩廂".equals(models)){
			return 300 * days;
		}else if("三廂".equals(models)){
			return 350 * days;
		}else{
			return 500 * days;
		}
	}
}
public class Bus extends Vehicle {
	//座位數(shù)
	private int seats;

	public int getSeats() {
		return seats;
	}

	public void setSeats(int seats) {
		this.seats = seats;
	}

	public Bus() {
		super();
	}
	
	public double getSumRent(int days){
		if(seats <= 16){
			return 400 * days;
		}else{
			return 600 * days;
		}
	}
}
public class Test {
	public static void main(String[] args) {
		Car c = new Car();
		c.setBrand("寶馬");
		c.setLicensePlateNumber("京A 88888");
		c.setModels("三廂");
		System.out.println("品牌:" + c.getBrand() + ",車(chē)牌號(hào):" + c.getLicensePlateNumber() + ",10天總租金:" + c.getSumRent(10));
		
		Bus b = new Bus();
		b.setBrand("海格");
		b.setLicensePlateNumber("京B 88888");
		b.setSeats(60);
		System.out.println("品牌:" + b.getBrand() + ",車(chē)牌號(hào):" + b.getLicensePlateNumber() + ",10天總租金:" + b.getSumRent(10));
	}
}
執(zhí)行結(jié)果如下圖所示:

十四、 super關(guān)鍵字練習(xí)題

● 請(qǐng)判斷以下代碼的輸出結(jié)果

public class Text {
	public static int k = 0;
	public static Text t1 = new Text("t1");
	public static Text t2 = new Text("t2");
	public static int i = print("i");
	public static int n = 99;
	public int j = print("j");
	static {
		print("靜態(tài)塊");
	}
	public Text(String str) {
		System.out.println((++k) + ":" + str + "   i=" + i + "    n=" + n);
		++i;
		++n;
	}
	public static int print(String str) {
		System.out.println((++k) + ":" + str + "   i=" + i + "    n=" + n);
		++n;
		return ++i;
	}
	public static void main(String args[]) {
		new Text("init");
	}
}
主站蜘蛛池模板: 99精品日韩 | 福利姬在线精品观看 | 五月天婷婷在线播放 | 国产精品爱久久 | 免费视频精品一区二区三区 | 国产三级做爰在线播放最爱 | 亚洲字幕 | 很很鲁在线视频播放影院 | 日韩在线视频www色 日韩在线视频不卡 | 伦理一区二区 | 熊出没之重启未来免费观看 | 国产精品玖玖玖影院 | 暴劫倾情无删减在线播放 | 亚洲免费二区三区 | 久久精品国产精品亚洲婷婷 | 国产女人18一级毛片视频 | 国产99视频在线观看 | 操操色| 欧美一区二区手机在线观看视频 | 综合久久综合 | 免费a级毛片在线播放 | 成人欧美一区二区三区白人 | 四虎影视在线观看 | 久久久久久中文字幕 | www.亚洲天堂 | 国产成人精品久久一区二区小说 | 久久99精品这里精品动漫6 | 美女国产精品 | 丁香激情综合色伊人久久 | 四虎国产精品永久地址99 | 国产一区二区在免费观看 | 欧美亚洲日本国产 | 欧美日韩第三页 | 久久97久久 | 日日干综合 | 久久精品30 | 中文字幕日韩一区二区三区不 | 我要看免费一级毛片 | jizz中国女人 | 日日干干 | 亚洲va欧美va国产 |