国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

《Java基礎(chǔ)入門》第三版--黑馬程序員課后習(xí)題(編程部分)

這篇具有很好參考價值的文章主要介紹了《Java基礎(chǔ)入門》第三版--黑馬程序員課后習(xí)題(編程部分)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

第 1 章 Java 開發(fā)入門

第 2 章 Java 編程基礎(chǔ)

1. 編寫程序,計算1+3+…+99的值,要求如下:

(1)使用循環(huán)語句實(shí)現(xiàn)1~99的遍歷

(2)在遍歷過程中,通過條件判斷當(dāng)前的數(shù)是否為奇數(shù),如果是就累加,否則不加。

 public class getSum {
2 public static void main(String[] args) {
3 int sum = 0;
4 for (int i = 1; i < 100; i++) {
5 if (i % 2 != 0)
6 sum += i;
7 }
8 System.out.println(sum);
9 }
10 }

2.使用do… while循環(huán)語句計算正數(shù)5的階乘。

1 public class Test {
2 public static void main(String[] args) {
3 int i = 1;
4 long sum = 1;
5 do {
6 sum *= i;
7 i++;
8 } while (i <= 5);
9 System.out.println(sum);
10 }
11 }

第 3 章 面向?qū)ο螅ㄉ希?/h2>

某公司正在進(jìn)行招聘工作,被招聘人員需要填寫個人信息,編寫個人簡歷的封裝類Resume,并編寫測試。Resume類圖及輸出效果

Example.java


class Resume {
 private String name;
 private String sex;
 private int age;
 public Resume(){
 }
 public Resume(String name,String sex,int age){
 this.name = name;
 this.sex = sex;
 this.age = age;
 }
 public String getName(){
 return name;
 }
 public String getSex(){
 return sex;
 }
 public int getAge(){
 return age;
 }
 public void introduce(){
 System.out.println(" 姓 名 : "+this.getName()+"\n 性 別 :
"+this.getSex()+"\n 年齡:"+this.getAge());
 }
}
public class Example{
 public static void main(String[] args){
 Resume re = new Resume("李四","男",20);
 re.introduce();
 }
}

第 4 章 面向?qū)ο螅ㄏ拢?/h2>

某公司的員工分為5類,每類員工都有相應(yīng)的封裝類,這5個類的信息如下。

(1) Emplovee:這是所有員工的父類。

①屬性:員工的姓名、員工的生日月份

②方法: Salary int month)根據(jù)參數(shù)月份確定工資。如果該月員工過生日,則公司會額外發(fā)放100元。

(2) Salariedemployee: Employee的子類,拿固定工資的員工。

屬性:月薪

(3) Hourlyemployee: Employee的子類,按小時拿工資的員工,每月工作超出160h部分按照1.5倍工資發(fā)放。

屬性:每小時的工資、每月工作的小時數(shù)。

(4) Salesemployee: Employee的子類,銷售人員,工資由月銷售額和提成率決定。

屬性:月銷售額、提成率。

(5) Baseplussalesemploye: Salesemployee的子類,有固定底薪的銷售人員,工資底薪加上銷售提成。

屬性:底薪。

本題要求根據(jù)上述員工分類(編寫一個程序,實(shí)現(xiàn)以下功能:

(1)創(chuàng)建 Employee,分別創(chuàng)建若干不同的 Employee對象,并打印某個用

(2)每個類都完全封裝,不允許有非私有化屬性。

Employee.java


abstract class Employee{
private String name; //定義姓名 name 并私有化屬性
private int month; //定義生日月份 month 并私有化屬性
public Employee(){} //無參構(gòu)造器
public Employee(String name,int month){ //有參構(gòu)造方法
this.name = name; //給屬性 name 初始化賦值
this.month = month; //給屬性 month 初始化賦值
}
//獲取屬性 name 的方法
public String getName(){
return name; //返回 name 屬性
}
//獲取屬性 month 的方法
public int getMonth(){
return month; //返回 month 屬性
}
//給屬性 name 賦初始值
public void setName(String name){
this.name = name; //本類中的屬性 name
}
//給屬性 month 賦初始值
public void setMonth(int month){
this.month = month; //本類中的屬性 month
}
//創(chuàng)建一個方法 getSalary()用來計算工資,參數(shù) month 是月份,如果當(dāng)月是員工生日,獎
勵 100 元
public double getSalary(int month){
double salary = 0; //定義工資變量
//判斷當(dāng)前月份是否是員 工的生日月份,如果是獎勵 100 元
if(this.month == month){
salary = salary + 100; 
return salary; //返回工資 salary
}
}
}

SalariedEmployee.java

class SalariedEmployee extends Employee{
private double monthSalary; //封裝 monthSalary 屬性
public SalariedEmployee(){} //無參構(gòu)造方法
//有參構(gòu)造方法 參數(shù) 姓名 生日月份 月薪
public SalariedEmployee(String name,int month,double monthSalary){
super(name,month); //調(diào)用父類有參構(gòu)造方法
this.monthSalary = monthSalary; //為屬性 monthSalary 初始化賦值
}
//獲取 monthSalary 的值
public double getMonthSalary(){
return monthSalary;
}
//給 monthSalary 賦值
public void setMonthSalary(double monthSalary){
this.monthSalary = monthSalary;
}
//覆蓋父類中的方法
public double getSalary(int month){
double salary = monthSalary+super.getSalary(month); //定義工資變量
return salary; 
}
}

HourlyEmployee.java

class HourlyEmployee extends Employee{
private double hourlySalary; //定義屬性 hourlySalary 每小時的工資
private int hours; //定義屬性 hours 每月工作的小時數(shù)
public HourlyEmployee(){} //無參構(gòu)造方法
//有參構(gòu)造方法 參數(shù) 姓名 生日月份 每小時的工資 每月工作的小時數(shù) 
public HourlyEmployee(String name,int month,double hourlySalary,int 
hours){
super(name,month); //調(diào)用父類有參構(gòu)造方法 
this.hourlySalary = hourlySalary ; //為屬性 hourlySalary 初始化賦值
this.hours = hours; //為屬性 hours 初始化賦值
}
public double getHourlySalary(){ //獲取 hourlySalary 的值
return hourlySalary;
}
public int getHours(){ //獲取 hours 的值
return hours;
}
//定義 set 方法設(shè)置 hourlySalary hours 的值
public void setHourlySalary(double hourlySalary){
this.hourlySalary =hourlySalary;
}
public void setHourly(int hours){
this.hours = hours;
}
//覆蓋父類方法
public double getSalary(int month){
if(hours < 0){ //如果工作小時數(shù)小于 0 輸出數(shù)據(jù)錯誤
System.out.println("數(shù)據(jù)錯誤");
return 0;
}
//小于 160 個小時的 按照每個月的工作小時數(shù)乘以每小時的工資
else if(hours <= 160) 
return hourlySalary*hours+super.getSalary(month); 
//超出 160 個小時的小時數(shù) 按照 1.5 倍計算
else return hourlySalary*160+hourlySalary*1.5*(hours160)+super.getSalary(month);
}
}

SalesEmployee.java

class SalesEmployee extends Employee{
private double sales ; //定義銷售額 sales
private double rate; //定義提成率 rate
public SalesEmployee(){}
public SalesEmployee(String name,int month,double sales,double rate){
super(name,month);
this.sales = sales;
this.rate = rate;
}
public double getSales(){
return sales;
}
public double getRate(){
return rate;
}
public void setSales(double sales){
this.sales = sales;
}
public void setRate(double rate){
this.rate = rate;
}
public double getSalary(int month){
return this.getSales()*(1+this.getRate())+super.getSalary(month);
}
}

BasePlusSalesEmployee.java

class BasePlusSalesEmployee extends SalesEmployee{
private double baseSalary; //定義基礎(chǔ)工資 baseSalary
//無參構(gòu)造方法
public BasePlusSalesEmployee(){}
//有參構(gòu)造方法
public BasePlusSalesEmployee(String name,int month,double sales,double 
rate,double baseSalary){
super(name,month,sales,rate);
this.baseSalary = baseSalary;
}
//get/set 方法對私有屬性的調(diào)用和設(shè)置
public double gatBaseSalary(){
return baseSalary;
}
public void setBaseSalary(){
this.baseSalary = baseSalary;
}
public double getSalary(int month){
return baseSalary+super.getSalary(month);
}
}
Test.java
//定義一個測試類
public class Test{
public static void main(String[] args){
//聲明一個 Employee 類型的數(shù)組,并創(chuàng)建不同子類型的對象
Employee[] employee = {new SalariedEmployee(“張三”,1,6000),new 
HourlyEmployee(“李 四”,2,50,180),new SalesEmployee(“王
 五”,3,6500,0.15),new BasePlusSalesEmployee(“趙六”,4,5000,0.15,2000)};
//打印每個員工的工資
for(int i = 0; i < employee.length ;i++)
System.out.println(Math.round(employee[i].getSalary(10)));
}
}

第 5 章 異常

一.簡答題

1.寫出處理異常的五個關(guān)鍵字

答:1. try、catch、finally、throw、throws。

2.簡述try...catch語句的一場處理流程并畫出流程圖

答:2. 程序通過 try 語句捕獲可能出現(xiàn)的異常,如果 try 語句沒有捕獲到異常,則直接跳出 try…catch 語句塊執(zhí)行其他程序;如果在 try 語句中捕獲到了異常,則程序會自動跳轉(zhuǎn)到 catch 語句中找到匹配的異常類型進(jìn)行相應(yīng)的處理。如果 try 語句捕獲到的異常與 catch 語 句例的異常匹配,則先執(zhí)行 catch 中的語句,最后執(zhí)行其他程序語句。

《Java基礎(chǔ)入門》第三版--黑馬程序員課后習(xí)題(編程部分)

3.簡述處理編譯異常的兩種方法

答:3. 處理編譯時期的異常有兩種方式如下: (1)使用 try…catch 語句對異常進(jìn)行捕獲處理。 (2)使用 throws 關(guān)鍵字聲明拋出異常,調(diào)用者對異常進(jìn)行處理。

第 6 章 Java API

五、1.每次隨機(jī)生成10個0~100的隨機(jī)正整數(shù)。

2.計算從今天算起100天以后是幾月幾日,并格式化成×××X年X月×日的形式打印出來。

提示:

(1)調(diào)用Calendar類的add()方法計算100天后的日期。

(2)調(diào)用Calendar類的getTime()方法返回Date類型的對象。

(3)使用FULL格式的DateFormat對象,調(diào)用format()方法格式化Date對象。

Example.java

import java.util.Random;
2 public class Example {
3 public static void main(String[] args) {
4 for(int i=0;i<10;i++){
5 System.out.println(new Random().nextInt(100));
6 }
7 }
8 }

Test.java

1 import java.text.DateFormat;
2 import java.util.Calendar;
3 import java.util.Date;
4 public class Test {
5 public static void main(String[] args) {
6 Calendar calendar = Calendar.getInstance();
7 calendar.add(Calendar.DATE, 100);
8 Date date = calendar.getTime();
9 DateFormat format = DateFormat.getDateInstance(DateFormat.FULL);
10 String string = format.format(date);
11 System.out.println(string);
12 }
13 }

第 7 章 集合類

1.編寫程序,向ArmsList集合中添加元素,然后遍歷并輸出這些元素。

1 public class Example {
2 public static void main(String[] args) {
3 ArrayList list = new ArrayList<>();
4 list.add("a");
5 list.add("b");
6 list.add("c");
7 list.add("a");
8 for(Iterator it = list.iterator();it.hasNext();){
9 System.out.println(it.next());
10 }
11 }
12 }

2.請發(fā)照下列要求編寫程序。

(1)寫一個Student類,包含name和age屬性,提供有參構(gòu)造方法。

(2)在Snudent 類中,重寫 toString()方法,輸出age和name的值。

(3)在Student類中,重寫hashCode()和equals()方法。

.hshCode()的返回值是name的哈希值與age的和。

.equals()判斷對象的name和age是否相同,相同則返回true,不同則返回false。

4)編寫一個測試類,創(chuàng)建一個HashSet<Student>對象hs,向hs中添加多個sat對象,假設(shè)有兩個Student對象相等。輸出HashSet集合,觀察Student對象是否添加成功。

Test.java文章來源地址http://www.zghlxwxcb.cn/news/detail-404378.html

1 import java.util.*;
2 class Student {
3 private int age;
4 private String name;
5 public Student(int age, String name) {
6 this.age = age;
7 this.name = name;
8 }
9 public String toString() {
10 return age + ":" + name;
11 }
12 public int hashCode() {
13 return name.hashCode() + age;
14 }
15 public boolean equals(Object obj) {
16 if (this == obj)
17 return true;
18 if (!(obj instanceof Student))
19 return false;
20 Student stu = (Student) obj;
21 return this.name.equals(stu.name) && this.age == stu.age;
22 }
23 }
24 public class Test {
25 public static void main(String[] args) {
26 HashSet<Student> hs = new HashSet<Student>();
27 hs.add(new Student(18, "zhangsan"));
28 hs.add(new Student(20, "lisa"));
29 hs.add(new Student(20, "lisa"));
30 System.out.println(hs);
31 }
32 }

第 8 章 泛型

按照下列提示編寫一個泛型接口以及其實(shí)現(xiàn)類

(1)創(chuàng)建泛型接口Generic<T>,并創(chuàng)建抽象方法get(T t)。

(2)創(chuàng)建實(shí)現(xiàn)類GenericImpl<T> , 并實(shí)現(xiàn)get(T t)方法。

1 interface Generic<T>{ 
2 public abstract void get(T t){} 
3 } 
4 class Generic<T> implements Generic{ 
5 public void get(T t){} 
6 }

第 10 章 IO(輸入輸出) ? ?

編寫一個程序,分別使用字節(jié)流和字符流復(fù)制一個文本文件。要求如下:
(1)使用?FilelnputStream?,?FileOutputStreaem?和?FileReader?,?FileWriter?分別進(jìn)行
復(fù)制。
(2)使用字節(jié)流復(fù)制時,定義一個長度為1024的字節(jié)數(shù)組作為緩沖區(qū),使用字符流
復(fù)制。

Test01.Java

1 import java.io.*;
2 public class Test01 {
3 public static void main(String[] args) throws Exception {
4 // 字節(jié)流拷貝
5 FileInputStream in = new FileInputStream("E:/src.txt");
6 FileOutputStream out = new FileOutputStream("E:/des1.txt");
7 byte[] buf = new byte[1024];
8 int len;
9 while ((len = in.read(buf)) != -1) {
10 out.write(buf, 0, len);
11 }
12 in.close();
13 out.close();
14 // 字符流拷貝
15 BufferedReader bf = new BufferedReader(new 
16 FileReader("E:/src.txt"));
17 BufferedWriter bw = new BufferedWriter(new 
18 FileWriter("E:/des2.txt"));
19 String str;
20 while ((str = bf.readLine()) != null) {
21 bw.write(str);
22 bw.newLine();
23 }
24 bf.close();
25 bw.close();
26 }
27 }

第 12 章 多線程

編寫一個多線程程序,模擬火車售票窗口的售票功能。創(chuàng)建線程1和線程2,通過這
兩個線程共同售出100張票。

?Example.java

Example.java
1 public class Example {
2 public static void main(String[] args) {
3 TicketWindow tw = new TicketWindow();
4 new Thread(tw, "線程 1").start();
5 new Thread(tw, "線程 2").start();
6 }
7 }
8 class TicketWindow implements Runnable {
9 private int num = 100;
10 public void run() {
11 while (num > 0) {
12 Thread th = Thread.currentThread();
13 String th_name = th.getName();
14 System.out.println(th_name + " 正在發(fā)售第 " + num-- + " 張票 ");
15 }
16 }

到了這里,關(guān)于《Java基礎(chǔ)入門》第三版--黑馬程序員課后習(xí)題(編程部分)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 黑馬程序員Java零基礎(chǔ)視頻教程筆記-運(yùn)算符

    1. 運(yùn)算符和表達(dá)式 ① 運(yùn)算符:對字面量或者變量進(jìn)行操作的符號 ② 表達(dá)式:用運(yùn)算符把字面量或者變量連接起來,符合java語法的式子就可以稱為表達(dá)式。 不同運(yùn)算符連接的表達(dá)式體現(xiàn)的是不同類型的表達(dá)式。 ③ 舉例 int a = 10; int b = 20; int c = a + b; +:是運(yùn)算符,并且是算術(shù)

    2024年02月01日
    瀏覽(25)
  • 【MySQL入門到精通-黑馬程序員】MySQL基礎(chǔ)篇-SQL概述及DDL

    【MySQL入門到精通-黑馬程序員】MySQL基礎(chǔ)篇-SQL概述及DDL

    本專欄文章為觀看黑馬程序員《MySQL入門到精通》所做筆記,課程地址在這。如有侵權(quán),立即刪除。 SQL語句可以單行或多行書寫,(默認(rèn))以分號結(jié)尾。 SQL語句可以使用空格/縮進(jìn)來增強(qiáng)語句的可讀性。 MySQL數(shù)據(jù)庫的SQL語句不區(qū)分大小寫,建議使用大寫。 注釋: 單行注

    2024年02月13日
    瀏覽(54)
  • 學(xué)生管理系統(tǒng)-課后程序(JAVA基礎(chǔ)案例教程-黑馬程序員編著-第六章-課后作業(yè))

    學(xué)生管理系統(tǒng)-課后程序(JAVA基礎(chǔ)案例教程-黑馬程序員編著-第六章-課后作業(yè))

    【案例6-2】 學(xué)生管理系統(tǒng) 【案例介紹】 1.任務(wù)描述 在一所學(xué)校中,對學(xué)生人員流動的管理是很麻煩的,本案例要求編寫一個學(xué)生管理系統(tǒng),實(shí)現(xiàn)對學(xué)生信息的添加、刪除、修改和查詢功能。每個功能的具體要求如下: 系統(tǒng)的首頁:用于顯示系統(tǒng)所有的操作,并根據(jù)用戶在控

    2024年02月03日
    瀏覽(100)
  • 日記本-課后程序(JAVA基礎(chǔ)案例教程-黑馬程序員編著-第七章-課后作業(yè))

    日記本-課后程序(JAVA基礎(chǔ)案例教程-黑馬程序員編著-第七章-課后作業(yè))

    【實(shí)驗7-3】? 日記本 【任務(wù)介紹】 ? 1. 任務(wù)描述 編寫一個日記本功能的程序,使用字節(jié)流經(jīng)日記的具體信息記錄在本地的txt文件中。當(dāng)用戶輸入日記的特定內(nèi)容后,會將輸入的內(nèi)容保存至本地的txt文件中。需要輸入的內(nèi)容包括“姓名”,“天氣”、“標(biāo)題”、“內(nèi)容”的數(shù)

    2024年02月05日
    瀏覽(143)
  • 打印不同的圖形-課后程序(JAVA基礎(chǔ)案例教程-黑馬程序員編著-第四章-課后作業(yè))

    打印不同的圖形-課后程序(JAVA基礎(chǔ)案例教程-黑馬程序員編著-第四章-課后作業(yè))

    【案例4-1】打印不同的圖形 記得 關(guān)注,收藏,評論哦,作者將持續(xù)更新。。。。 【案例介紹】 案例描述 本案例要求編寫一個程序,可以根據(jù)用戶要求在控制臺打印出不同的圖形。例如,用戶自定義半徑的圓形和用戶自定義邊長的正方形。 運(yùn)行結(jié)果 ? 【案例分析】 ( 1 )

    2024年02月01日
    瀏覽(28)
  • 模擬QQ登錄-課后程序(JAVA基礎(chǔ)案例教程-黑馬程序員編著-第十一章-課后作業(yè))

    模擬QQ登錄-課后程序(JAVA基礎(chǔ)案例教程-黑馬程序員編著-第十一章-課后作業(yè))

    【案例11-3】 模擬QQ登錄 【案例介紹】 1. 案例描述 QQ是現(xiàn)實(shí)生活中常用的聊天工具,QQ登錄界面看似小巧、簡單,但其中涉及的內(nèi)容卻很多,對于初學(xué)者練習(xí)Java Swing工具的使用非常合適。本案例要求使用所學(xué)的Java Swing知識,模擬實(shí)現(xiàn)一個QQ登錄界面。 2. 運(yùn)行結(jié)果 ? 運(yùn)行結(jié)果

    2024年02月08日
    瀏覽(116)
  • 簡易計算器-課后程序(JAVA基礎(chǔ)案例教程-黑馬程序員編著-第十一章-課后作業(yè))

    簡易計算器-課后程序(JAVA基礎(chǔ)案例教程-黑馬程序員編著-第十一章-課后作業(yè))

    【案例11-2】 簡易計算器 【案例介紹】 1. 案例描述 本案例要求利用Java Swing 圖形組件開發(fā)一個可以進(jìn)行簡單的四則運(yùn)算的圖形化計算器。 2. 運(yùn)行結(jié)果 運(yùn)行結(jié)果 ? 【案例分析】 要制作一個計算器,首先要知道它由哪些部分組成,如下圖所示: 一個簡單的圖形化界面計算器,

    2024年02月03日
    瀏覽(115)
  • 黑馬程序員pink老師前端入門教程,零基礎(chǔ)必看的h5(html5)+css3+移動端

    黑馬程序員pink老師前端入門教程,零基礎(chǔ)必看的h5(html5)+css3+移動端

    1.1什么是網(wǎng)頁? 1.2什么是HTML? 2.1常用的瀏覽器 2.2瀏覽器內(nèi)核 ?3.1為啥需要Web標(biāo)準(zhǔn)? 3.2Web標(biāo)準(zhǔn)的構(gòu)成 : 4.1基本語法概述: 4.2標(biāo)簽關(guān)系: 5.1HTML網(wǎng)頁: ? 6.1VSCode常用快捷鍵: 第二篇:前端VSCode常用插件-快捷鍵-以及常用技巧-pink老師 - 嗶哩嗶哩 快速復(fù)制一行:shift+alt+下/上箭

    2024年04月08日
    瀏覽(42)
  • 學(xué)習(xí)筆記-微服務(wù)基礎(chǔ)(黑馬程序員)

    spring cloud spring cloud alibaba eureka-server 注冊中心 eureka-client 客戶端 每30s發(fā)送心跳 服務(wù) 服務(wù)消費(fèi)者 服務(wù)提供者 依賴 啟動類 添加注解 @EnableEurekaServer 配置文件 application.yml 依賴 配置文件 application.yml 添加注解 @LoadBlanced 修改url 自定義負(fù)載均衡策略 1、定義新的IRule,將輪詢策略(

    2024年04月13日
    瀏覽(30)
  • [學(xué)習(xí)筆記]黑馬程序員-Hadoop入門視頻教程

    [學(xué)習(xí)筆記]黑馬程序員-Hadoop入門視頻教程

    黑馬程序員大數(shù)據(jù)Hadoop入門視頻教程,適合零基礎(chǔ)自學(xué)的大數(shù)據(jù)Hadoop教程 學(xué)習(xí)目標(biāo) 1.理解大數(shù)據(jù)基本概念 2.掌握數(shù)據(jù)分析基本步驟 3.理解分布式、集群概念 4.學(xué)會VMware虛擬機(jī)的導(dǎo)入與使用 5.掌握Linux常用操作命令使用 6.掌握vi/vim編輯器基礎(chǔ)使用 1.1.1 企業(yè)數(shù)據(jù)分析方向 數(shù)據(jù)分

    2024年02月13日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包