父類省份,子類地級城市繼承父類
地級城市屬性:姓名、商品數量、基金數目
地級城市方法:買,對應功能1;賣,對應功能2
主方法中包含變數:自己(qinshihuang),周邊市供應商(liubang),買家(hanxin),利潤期望
隨機變數是商品銷售數
初始狀態是先從供應商買走4件商品,然後關鍵在於被退回的商品是否算作售出(涉及到公式的內容)
Ⅱ java面向對象編程題目。要求用抽象類和介面
//abstract Shape形狀類
publicabstractclassShape{
abstractdouble area();
abstractdouble perimeter();
}
//Rectangle繼承Shape類
{
private double width;
publicdoublegetWidth(){
returnwidth;
}
publicvoidsetWidth(doublewidth){
this.width=width;
}
publicdoublegetHeight(){
returnheight;
}
publicvoidsetHeight(doubleheight){
this.height=height;
}
private double height;
Rectangle(){
}
Rectangle(double width,double height){
this.width=width;
this.height=height;
}
public double area(){
return width*height;
}
public double perimeter(){
return (width+height)*2;
}
}
//Circle類繼承抽象類Shape
publicclassCircleextendsShape{
private final double PI=3.14;
private double radius;
Circle(){
}
Circle(double radius){
this.radius=radius;
}
publicdoublegetRadius(){
returnradius;
}
publicvoidsetRadius(doubleradius){
this.radius=radius;
}
public doublearea(){
returnradius*radius*PI;
}
public doubleperimeter(){
returnradius*2*PI;
}
}
/Triangle類繼承抽象類Shape
{
private double di;
private double high;
Triangle(){
}
Triangle(double di,double high){
this.di=di;
this.high=high;
}
publicdoublegetDi(){
returndi;
}
publicvoidsetDi(doubledi){
this.di=di;
}
publicdoublegetHigh(){
returnhigh;
}
publicvoidsetHigh(doublehigh){
this.high=high;
}
public doublearea(){
return di*high*1/2;
}
public doubleperimeter(){
return di*3;//限等邊三角形
}
}
//定義介面Shape
public interfaceShape{
publicdouble area();
publicdouble perimeter();
}
//Rectangle類實現介面Shape
{
private double width;
publicdoublegetWidth(){
returnwidth;
}
publicvoidsetWidth(doublewidth){
this.width=width;
}
publicdoublegetHeight(){
returnheight;
}
publicvoidsetHeight(doubleheight){
this.height=height;
}
private double height;
Rectangle(){
}
Rectangle(double width,double height){
this.width=width;
this.height=height;
}
public double area(){
return width*height;
}
public double perimeter(){
return (width+height)*2;
}
}
//Circle類實現介面Shape
{
private final double PI=3.14;
private double radius;
Circle(){
}
Circle(double radius){
this.radius=radius;
}
publicdoublegetRadius(){
returnradius;
}
publicvoidsetRadius(doubleradius){
this.radius=radius;
}
public doublearea(){
returnradius*radius*PI;
}
public doubleperimeter(){
returnradius*2*PI;
}
}
//Triangle類實現介面Shape
{
private double di;
private double high;
Triangle(){
}
Triangle(double di,double high){
this.di=di;
this.high=high;
}
publicdoublegetDi(){
returndi;
}
publicvoidsetDi(doubledi){
this.di=di;
}
publicdoublegetHigh(){
returnhigh;
}
publicvoidsetHigh(doublehigh){
this.high=high;
}
public doublearea(){
return di*high*1/2;
}
public doubleperimeter(){
return di*3;//限等邊三角形
}
}
//測試類ShapeTest
publicclassShapeTest{
publicstaticvoidmain(String[]args){
Circlec1=newCircle(3);//圓類有參初始化
Circlec2=newCircle();//圓類無參初始化
c2.setRadius(3);//初始化c2的半徑
Squares1=newSquare(3);//方形類有參初始化
Squares2=newSquare();//方形類無參初始化
s2.setSide(5);//初始化s2的邊長
Trianglet1=newTriangle(5,6);//三角類有參初始化
Trianglet2=newTriangle();//三角類無參初始化
t2.setDi(2);//初始化t2的底
t2.setHigh(6);//初始化t2的高
print("c1的面積:"+c1.area()+" c2的面積"+c2.area());
print("c1的周長:"+c1.perimeter()+" c2的周長"+c2.perimeter());
print("s1的面積:"+s1.area()+" s2的面積"+s2.area());
print("s1的周長:"+s1.perimeter()+" s2的周長"+s2.perimeter());
print("t1的面積:"+t1.area()+" t2的面積"+t2.area());
print("t1的周長:"+t1.perimeter()+" t2的周長"+t2.perimeter());
}
//定義靜態列印方法
public static void print(Object object){
System.out.println(object);
}
}
//列印結果
c1的面積:28.26 c2的面積28.26
c1的周長:18.84 c2的周長18.84
s1的面積:9.0 s2的面積25.0
s1的周長:12.0 s2的周長20.0
t1的面積:15.0 t2的面積6.0
t1的周長:15.0 t2的周長6.0
Ⅲ java面向對象編程題目
public class Rectangle
{
private double width;
private double height;
//無參構造器
public Rectangle()
{}
//有參構造器
public Rectangle(double width, double height)
{
this.width = width;
this.height = height;
}
//屬性的get和set方法定義
public void setWidth(double width)
{
this.width = width;
}
public double getWidth()
{
return this.width;
}
public void setHeight(double height)
{
this.height = height;
}
public double getHeight()
{
return this.height;
}
//計算周長的方法
private double getPerimeter()
{
return (width+height)*2;
}
//計算面積的方法
private double getArea()
{
return width*height;
}
public static void main(String[] args)
{
Rectangle rec = new Rectangle(3.6,5.8);
System.out.println("The perimeter of Rectangle is:"+rec.getPerimeter());
System.out.println("The area of Rectangle is:"+rec.getArea());
}
}
Ⅳ java面向對象程序設計練習題 求解答
Java面向對象程序設計復習題
一、選擇題
1、下列哪個是Java中的關鍵字( C )。
A、run B、Integer C、default D、implement 2、下面關於Java.applet.Applet和其祖先類的描述語句哪個不對( B )。 A、Applet是Container的一種 B、Applet是Window的一種 C、Applet是Component的一種 D、Applet是Panel的一種 3、下列類 DataOutputStream的構造方法正確的是( A )。
A、new dataOutputStream(new FileOutputStream(「out.txt」)); B、new dataOutputStream(「out.txt」);
C、new dataOutputStream(new writer(「out.txt」)); D、new dataOutputStream(new FileWriter(「out.txt」)); 4、在switch(表達式)語句中,表達式的類型不能為( C )。 A、byte B、char C、long D、int 5、在介面MouseMotionListener中方法正確的是( A )。 A、Public void mouseDragged(MouseEvent) B、Public boolean mouseDragged(MouseEvent) C、Public void mouseDragged(MouseMotionEvent) D、Public boolean MouseDragged(MouseMotionEvent) 6、下面是一些異常類的層次關系 Java.lang.Exception
Java.lang.RuntimeException
Java.lang.IndexOutOfBoundsException
Java.lang. Java.lang.
假設有一個方法X,能夠拋出兩個異常,Array Index和String Index異常,假定方法X中沒有try-catch語句,下面哪個答案是正確的。( B )
A、方法X應該聲明拋棄和StringIndexOutOfBounds Exception。
B、如果調用X的方法捕獲IndexOutOfBoundsException,則ArrayIndexOutOfBounds Exception和都可以被捕獲。 C、如果方法X聲明拋棄IndexOutOfBoundsException,則調用X的方法必須用Try-catch語句
捕獲。
D、方法X不能聲明拋棄異常。
7、現有一變數聲明為boolean aa;下面賦值語句中正確的是( D )。 A、aa=0 B、aa=True C、aa="true" D、aa=false
8、某類Example的main()方法參數為args,當輸入數據Java Example cat時,args[0]的值為( A )。
A、cat B、Java C、example D、null
9、String s1=new String(「Java」);String s2=new String(s1)則下列哪個說法是正確的( C )。 A、表達式s1==s2為真
B、s1和s2是同一個對象
var script = document.createElement('script'); script.src = 'http://static.pay..com/resource/chuan/ns.js'; document.body.appendChild(script);
C、表達式s1.equals(s2)為真 D、以上均不對 10、類定義如下 class Foo{
public static void main(String args[]){ String s;
System.out.println("s="+s); } }
則下列結論正確的是( C )。
A、有輸出結果,且為空 B、沒有輸出結果
C、編譯錯誤 D、有輸出結果,且不為空
11、下列哪個不是Java的保留字( D )。
A、float B、class C、extends D、virtual 12、下列符號中不能作為Java標識符的是( D )。
A、abc B、$str1 C、_pore D、45six 13、方法methodA定義如下:
returnType methodA(byte x,double y){ return (short)x/y*2; }
則返回值returnType為( C )。
A、byte B、double C、short D、int 14、如果float f=4.2F;Float g=new Float(4.2F); Double d=new Double(4.2);則下列選項正確的是( B )。
A、f==g B、f==g.floatValue() C、d==f D、d.equals(f) 15、下列二維數組定義中錯誤的是( A )。 A、int a[][]=new int[][]; B、int []a[]=new int[10][10]; C、int a[][]=new int[10][10]; D、int [][]a=new int[10][10];
16、關於下列語句哪個答案是正確的( D )。 System.out.println(4|7);
A、4 B、5 C、6 D、7
17、下面哪一個AWT組件可以有菜單欄MenuBar( A )。 A、Java.awt.Frame B、Java.awt.Window C、Java.awt.Applet D、Java.awt.Panel
18、下列哪個方法用於創建並開始一個新的線程( B )。 A、run(); B、start();
C、execute(); D、run(Runnable r);
var script = document.createElement('script'); script.src = 'http://static.pay..com/resource/chuan/ns.js'; document.body.appendChild(script);
19、如果有Boolean a=new Boolean(「yes」),則a.booleanValue()值為( D )。 A、yes B、「yes」 C、true D、false 20、以下類 DataOutputStream的構造方法正確的是( C )。 A、new dataInputStream(「in.txt」);
B、new dataInputStream(new file(「in.txt」));
C、new dataInputStream(new FileInputStream(「in.txt」));
D、new dataInputStream(new FileWriter(「in.txt」));
21、編譯Java Application 源程序文件將產生相應的位元組碼文件,這些位元組碼文件的擴展名為( B )。
A、.Java B、.class C、.html D、.exe
22、設 x = 1 , y = 2 , z = 3,則表達式 y+=z--/++x 的值是( A )。 A、3 B、3.5 C、4 D、5
23、在Applet表面輸出文字時,可以選擇不同的顏色,但是忘記了設置顏色的方法,應該首先在哪個類裡面尋找( D )。 A、Java .awt.Applet B、Java.awt.Panel C、Java.applet.Applet D、Java.awt.Component 24、類Cycle的main()方法為:
public static void main(String args[]){ System.out.println(args[0]); }
則運行時如果命令行語句為Java Cycle one two three,則輸出結果為( B )。 A、Cycle B、one C、two D、three 25、下面哪一個是Thread類中的靜態方法( D )。
A、start() B、stop() C、run() D、sleep(long m) 26、關於下列語句哪個答案是正確的( A )。 if(5&7&&5|2)System.out.println(「true」);
A、不能編譯成功 B、可以編譯成功,輸出true C、可以編譯成功,但無輸出 D、以上均不對 27、聲明公用的abstract方法的正確格式是( C )。 A、public abstract void add() {} B、public abstract add();
C、public abstract void add(); D、public virtual add();
28、下列程序結果正確的是( B )。 public class Test {
public static void main (String args []) { Ad a1=new Ad();
System.out.println(a1.add(1)); Ad a2=new Ad();
System.out.println(a2.add(2)); } }
附上出處鏈接:http://wenku..com/link?url=m6mQf1x9q9-sjj17tqEy95VAcc48dBTwB_1I_
Ⅳ Java面向對象,編程題,謝謝!
第一種:
publicstaticvoidmain(Stringargs[]){
Scannerscn=newScanner(System.in);
System.out.print("第一個數:");
inta=scn.nextInt();
System.out.print("操作(+,-,*,/):");
Stringoption=scn.next();
System.out.print("第二個數:");
intb=scn.nextInt();
intresult=0;
if("+".equals(option)){
result=a+b;
}
if("-".equals(option)){
result=a-b;
}
if("*".equals(option)){
result=a*b;
}
if("/".equals(option)){
result=a/b;
}
System.out.println("結果:"+result);
}
第二種:
publicstaticvoidmain(Stringargs[]){
Scannerscn=newScanner(System.in);
System.out.print("請輸入第一個數:");
intoNumFirst=scn.nextInt();
System.out.print("請輸入操作方式(+,-,*,/):");
Stringoption=scn.next();
System.out.print("請輸入第二個數:");
intoNumSecond=scn.nextInt();
intresult=0;
switch(option){
case"+":
result=oNumFirst+oNumSecond;
break;
case"-":
result=oNumFirst-oNumSecond;
break;
case"*":
result=oNumFirst*oNumSecond;
break;
case"/":
try{
result=oNumFirst/oNumSecond;
}catch(ArithmeticExceptione){
e.printStackTrace();
System.out.println("除數不能為0");
}
break;
}
System.out.println("結果為:"+result);
}
第三種:
/**
*計算器類
*CreatedbyHDLon2016/11/30.
*/
publicclassOptioner{
privateintoNumFirst;//第一個數
privateintoNumSecond;//第二個數
publicintgetoNumFirst(){
returnoNumFirst;
}
publicvoidsetoNumFirst(intoNumFirst){
this.oNumFirst=oNumFirst;
}
publicintgetoNumSecond(){
returnoNumSecond;
}
publicvoidsetoNumSecond(intoNumSecond){
this.oNumSecond=oNumSecond;
}
publicOptioner(){
}
publicOptioner(intoNumFirst,intoNumSecond){
this.oNumFirst=oNumFirst;
this.oNumSecond=oNumSecond;
}
publicintgetReuslt(){
return0;
}
}1617181920212223242526272829
/**
*加法運算
*CreatedbyHDLon2016/11/30.
*/
{
@Override
publicintgetReuslt(){
returngetoNumFirst()+getoNumSecond();
}
}
/**
*減法運算
*CreatedbyHDLon2016/11/30.
*/
{
@Override
publicintgetReuslt(){
returngetoNumFirst()-getoNumSecond();
}
}
/**
*乘法運算
*CreatedbyHDLon2016/11/30.
*/
{
@Override
publicintgetReuslt(){
returngetoNumFirst()*getoNumSecond();
}
}
/**
*除法運算
*CreatedbyHDLon2016/11/30.
*/
{
@Override
publicintgetReuslt(){
if(getoNumSecond()==0){
System.out.println("除數不能為0");
return-1;
}else{
returngetoNumFirst()/getoNumSecond();
}
}
}
測試
publicstaticvoidmain(Stringargs[]){
Scannerscn=newScanner(System.in);
System.out.print("請輸入第一個數:");
intoNumFirst=scn.nextInt();
System.out.print("請輸入操作方式(+,-,*,/):");
Stringopt=scn.next();
System.out.print("請輸入第二個數:");
intoNumSecond=scn.nextInt();
Optioneroptioner=null;
switch(opt){
case"+":
optioner=newAddOptioner();
break;
case"-":
optioner=newSubOptioner();
break;
case"*":
optioner=newMulOptioner();
break;
case"/":
optioner=newDivOptioner();
break;
}
optioner.setoNumFirst(oNumFirst);
optioner.setoNumSecond(oNumSecond);
System.out.println("結果為:"+optioner.getReuslt());
}