1、設計四個類,分別是:(知識點:抽象類及抽象方法)(1)Shape表示圖形類,有面積屬性area、周長屬性per,顏色屬性color,有兩個構造方法(一個是默認的、一個是為顏色賦值的),還有3個抽象方法,分別是:getArea計算面積、getPer計算周長、showAll輸出所有信息,還有一個求顏色的方法getColor。(2)2個子類: 1)Rectangle表示矩形類,增加兩個屬性,Width表示長度、height表示寬度,重寫getPer、getArea和showAll三個方法,另外又增加一個構造方法(一個是默認的、一個是為高度、寬度、顏色賦值的)。 2)Circle表示圓類,增加1個屬性,radius表示半徑,重寫getPer、getArea和showAll三個方法,另外又增加兩個構造方法(為半徑、顏色賦值的)。 (3)一個測試類PolyDemo,在main方法中,聲明創建每個子類的對象,并調用2個子類的showAll方法。package study;public abstract class Shape { double area; double per;//perimeter String color; public Shape() { } public Shape(String color) { super(); this.color = color; } public abstract void getArea(); public abstract void getPer(); public abstract void showAll(); public String getColor() { return color; } public void setColor(String color) { this.color = color; } }package study;public class Rectangle extends Shape{ double length; double width; public Rectangle() { } public Rectangle(double a, double b,String c) { super(); length=a; width=b; color=c; } @Override public void getArea() { // TODO Auto-generated method stub area=length*width; } @Override public void getPer() { // TODO Auto-generated method stub per=(length+width)*2; } @Override public void showAll() { // TODO Auto-generated method stub System.out.println("顏色是"+color+"面積是"+area+"周長是"+per); } }package study;public class Circle extends Shape{ double radius; public Circle() { } public Circle(double radius,String a) { super(); this.radius = radius; color=a; } @Override public void getArea() { // TODO Auto-generated method stub area=radius*radius*3.14; } @Override public void getPer() { // TODO Auto-generated method stub per=2*radius*3.14; } @Override public void showAll() { // TODO Auto-generated method stub System.out.println("顏色是"+color+"半徑是"+radius+"面積是"+area+"周長是"+per); }}package study;public class PolyDemo { public static void main(String[] args) { // TODO Auto-generated method stub Rectangle r=new Rectangle(3,4,"月白"); r.getArea(); r.getPer(); r.showAll(); Circle c=new Circle(2.0,"橙黃"); c.getArea(); c.getPer(); c.showAll(); }}2、Cola公司的雇員分為以下若干類:(知識點:多態)(1) ColaEmployee :這是所有員工總的父類,屬性:員工的姓名,員工的生日月份。? 方法:getSalary(int month) 根據參數月份來確定工資,如果該月員工過生日,則公司會額外獎勵100 元。(2) SalariedEmployee : ColaEmployee 的子類,拿固定工資的員工。? 屬性:月薪(3) HourlyEmployee :ColaEmployee 的子類,按小時拿工資的員工,每月工作超出160 小時的部分按照1.5 倍工資發放。? 屬性:每小時的工資、每月工作的小時數(4) Salesemployee :ColaEmployee 的子類,銷售人員,工資由月銷售額和提成率決定。? 屬性:月銷售額、提成率(5) 定義一個類Company,在該類中寫一個方法,調用該方法可以打印出某月某個員工的工資數額,寫一個測試類TestCompany,在main方法,把若干各種類型的員工放在一個ColaEmployee 數組里,并單元出數組中每個員工當月的工資。package Cola;public abstract class ColaEmployee { String name; int birthmonth; public ColaEmployee() { } public ColaEmployee(String name, int birthmonth) { this.name = name; this.birthmonth = birthmonth; } abstract double getSalary(int month) ;}package Cola;public class SalariedEmployee extends ColaEmployee{ double salar; public SalariedEmployee() { } public SalariedEmployee(String name, int birthmonth,double salar) { super(name,birthmonth); this.salar=salar; } @Override double getSalary(int month) { if(month==birthmonth) { salar+=100; } return salar; }}package Cola;public class HourlyEmployee extends ColaEmployee{ double shourly; double hours; public HourlyEmployee() { super(); // TODO Auto-generated constructor stub } public HourlyEmployee(String name, int birthmonth,double shourly,double hours) { super(name, birthmonth); // TODO Auto-generated constructor stub this.shourly=hours; this.hours=hours; } double getSalary(int month) { if(hours>160.0) { shourly=(160.0*shourly)+(hours-160.0)*(shourly*1.5); }else { shourly=hours*shourly; } if(month==birthmonth) { shourly+=100.0; return shourly; }else { return shourly; } }}package Cola;public class SalesEmployee extends ColaEmployee{ double smonthly; double rate; public SalesEmployee() { super(); // TODO Auto-generated constructor stub } public SalesEmployee(String name, int birthmonth, double smonthly,double rate) { super(name, birthmonth); // TODO Auto-generated constructor stub this.smonthly=smonthly; this.rate=rate; } public double getSalary(int month) { smonthly=smonthly+smonthly*rate; if(month==birthmonth) { smonthly+=100; return smonthly; }else { return smonthly; } }}package Cola;public class Company{ public static void getSalary(ColaEmployee a,int month) { System.out.println(month+"月"+a.name+"員工"+"的月薪是"+a.getSalary(month)+"元。"); }}package Cola;public class TestCompany { public static void main(String[] args) { // TODO Auto-generated method stub ColaEmployee [] b=new ColaEmployee[6]; b[0]=new SalesEmployee("王偉", 4, 10000, 5); b[1]=new SalesEmployee("劉美",8,12000,5); b[2]=new SalariedEmployee("張鈞", 11, 20000); b[3]=new SalariedEmployee("高晟", 2, 23000); b[4]=new HourlyEmployee("季澊", 9, 200, 168); b[5]=new HourlyEmployee("沈復",5,300,170); for (ColaEmployee a:b) { Company.getSalary(a,5); } }}3、利用接口實現動態的創建對象:(知識點:接口 )(1)創建4個類 1蘋果 2香蕉 3葡萄 4園丁(2)在三種水果的構造方法中打印一句話. 以蘋果類為例 class apple { public apple() { System.out.println(“創建了一個蘋果類的對象”); } }(3)類圖如下:(4)要求從控制臺輸入一個字符串,根據字符串的值來判斷創建三種水果中哪個類的對象。 運行結果如圖: package study;public interface Fruit { }package study;public class apple implements Fruit { public apple() { super(); // TODO Auto-generated constructor stub System.out.println("創建了一個蘋果類的對象"); } }package study;public class Banana implements Fruit { public Banana() { super(); // TODO Auto-generated constructor stub System.out.println("創建了一個香蕉類的對象"); } }package study;public class Pear implements Fruit { public Pear() { super(); // TODO Auto-generated constructor stub System.out.println("創建了一個梨類的對象"); } }package study;import java.util.Scanner;public class Garder { public void creater() { System.out.println("請輸入你想創建的果園(蘋果,梨,香蕉):"); String s = ""; Scanner input = new Scanner(System.in); s = input.nextLine(); if (s.equals("蘋果")) { new apple(); } else if (s.equals("香蕉")) { new Banana(); } else if (s.equals("梨")) { new Pear(); } else { System.out.println("請輸入正確的對象"); } }}package study;public class Test { public static void main(String[] args) { // TODO Auto-generated method stub new Garder().creater(); } }
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
北京到西安飛機票價格?2017年2月22日,北京到Xi安的經濟艙機票價格從370到1680不等。您可以根據您的旅行時間提前在芒果網預訂您的旅行機票!北京到西安飛機和高鐵哪個合適?如果是旅游淡季,機票價格很低,折扣在10%或20%左右。我建議坐飛機最劃算,最省時,最劃算。機票九折和火車硬座價格差不多,機票八折到七折和硬臥票差不多。如果是旅游旺季,飛機最貴,其次是高鐵。公交車不安全,人坐公交車的空間狹...
360瀏覽器如何恢復歷史記錄?360瀏覽器發歷史記錄方法萬分感謝:1、簡單的方法然后打開電腦可以找到360瀏覽器,可以打開瀏覽器后直接點擊右上角的三條杠菜單選項2、再點后在自動彈出的頁面點擊你選歷史這個選項3、之后點擊左邊的日期就也可以參與恢復記錄,那樣的話完全恢復360瀏覽器歷史記錄的問題就能解決了。360瀏覽器怎么找回歷史瀏覽記錄?簡單的方法你可以打開你的360瀏覽器,然后再可以找到上方的一個...
如何學CAD?隨著計算機應用技術的飛速發展,計算機輔助設計已經成為現代工業設計的重要組成部分。AutoCAD軟件具有操作簡單、功能強大的特點。它已被廣泛應用于機械設計、建筑設計、電子等平面設計領域。那么怎樣才能學好AutoCAD繪圖呢?學前準備CAD軟件選擇在正式學習之前,我們要做一步準備,那就是找一個屬于自己的CAD軟件。雖然市面上有很多盜版的CAD,但是還是建議你使用正版的CAD軟件。一方面,...