Java第八天-面向對象練習

/**01.類的成員變量(屬性),猜數字遊戲,一個類A有一個成員變量(屬性)v有一個初值100。定義一個類對A類的成員變量v進行猜。若是大了則提示大了小了則提示笑了。等於則提示猜想成功
*/
public class Test{
    public static void main(String[] args){
        //定義一個猜想的變量
        int guess=55;
        //建立一個A類的對象
        A a=new A();
        if(guess>a.v){
            System.out.println("猜大了");
        }
        else if(guess<a.v){
            System.out.println("猜小了");
        }else{
            System.out.println("猜對了");
        }
    }
}
class A{
    int v=100;
}java

/**02.類的成員變量  請定義一個交通工具(Vehicle)的類中有:屬性速度(speed)、體積(size)等等,方法移動(move())設置速度(setspeed(int speed))、加速speedUp()、減速speedDown()等等。最後在測試類Vehile種的main()中實例化一個交通工具對象並經過方法給它初始化speed、size的值而且經過打印出來。另外調用加速減速的方法對速度進行改變。
*/
class Vehicle{
    int speed;
    int size;
    public void move(){
        System.out.println("正在行駛速度是"+speed);
    }
    public void setSpeed(int sp){
        this.speed=sp;
    }
    //自定義加速
    public void speedUp(int sp){
        speed+=sp;
    }
    //第二種方式,逐步加速
    public void speedUp(){
        speed++;
    }
    public void speedDown(int sp){
        speed-=sp;
    }
    public void info(){
        System.out.println("速度:"+speed+"大小:"+size);
    }
}
public class TestVehicle{
    public static void main(String[] args){
        Vehicle motor=new Vehicle();
        motor.speed=20;
        motor.size=50;
        motor.info();
        motor.setSpeed(100);
        motor.speedUp(2);
        motor.move();
        motor.speedDown(3);
        motor.move();
    }
}安全

/**03.類的成員變量與方法、在程序中常常對時間進行操做可是並無時間類型的數據。那麼咱們能夠本身實現一個時間類來知足程序中的須要。定義名爲MyTime的類其中應有三個整型屬性時hour分minute秒second爲了保證數據的安全性這三個變量應聲明爲私有。建立MyTime類對象而且初始化成員變量。再定義diaplay方法用於將時間信息打印出來。爲MyTime類添加如下方法addSecong(int sec)、addMinute(int min)、addHour(int hou)、subSecond(int sec)、subMinute(int min)、subHour(int hou)分別對時、分、秒進行加減運算。工具

*/
class MyTime{
    //三個私有屬性hour、minute、second
    private int hour;
    private int minute;
    private int second;
    public void setHour(int hou){
        hour=hou;
    }
    public int getHour(){
        return hour;
    }
    public void setMinute(int min){
        minute=min;
    }
    public int getMinute(){
        return minute;
    }
    public void setSecond(int sec){
        second=sec;
    }
    public int getSecond(){
        return second;
    }
    public void diapaly(){
        System.out.println(this.hour+":"+this.minute+":"+this.second);
    }
    //加小時
    public int addHour(int hou){
        hour+=hou;
        return hour;
    }
    public int subHour(int hou){
        hour-=hou;
        return hour;
    }
    //加分鐘
    public int addMinute(int min){
        minute+=min;
        return minute;
    }
    public int subMinute(int min){
        minute-=min;
        return minute;
    }
    //加秒
    public int addSecond(int sec){
        second+=sec;
        return second;
    }
    public int subSecond(int sec){
        second-=sec;
        return second;
    }
}
class TestMyTime{
    public static void main(String[] args){
        //建立MyTime對象
        MyTime B=new MyTime();
        B.setHour(15);
        B.setMinute(25);
        B.setSecond(37);
        B.diapaly();
        //修改時間
        B.addHour(2);
        B.addMinute(10);
        B.subSecond(7);
        B.diapaly();
    }
}oop

/**04.編寫Java程序模擬簡單的計算器。定義名爲MyNumber的類中有兩個整型成員n1和n2應聲明爲私有。再爲該類定義加addition、減subtration、乘multiplication、除duvision等公有成員方法分別對兩個成員變量執行加、減、乘、除的運算。在main方法中建立MyNumber類的對象賦予n1和n2初始值低調用各個方法並顯示計算結果。
*/
class MyNumber{
    private int n1;
    private int n2;
    public void setN1(int n){
        n1=n;
    }
    public int getN1(){
        return n1;
    }
    public void setN2(int n){
        n2=n;
    }
    public int getN2(){
        return n2;
    }
    public int addition(){
        return n1+n2;
    }
    public int subtration(){
        return n1-n2;
    }
    public int multiplication(){
        return n1*n2;
    }
    public int division(){
        return n1/n2;
    }
}
public class TestMyNumber{
    public static void main(String[] args){
        MyNumber time=new MyNumber();
        time.setN1(72);
        time.setN2(3);
        int addresult=time.addition();
        System.out.println("打印加法結果"+addresult);
        int subresult=time.subtration();
        System.out.println("打印減法結果"+subresult);
        int mulresult=time.multiplication();
        System.out.println("打印乘法結果"+mulresult);
        int divresult=time.division();
        System.out.println("打印除法結果"+divresult);
    }
}測試

/**05.類的成員變量與方法、在程序中常常對時間進行操做可是並無時間類型的數據。那麼咱們能夠本身實現一個時間類來知足程序中的須要。定義名爲MyTime的類其中應有三個整型屬性時hour分minute秒second爲了保證數據的安全性這三個變量應聲明爲私有。爲MyTime類定義構造方法以方便建立對象時初始化成員變量。再定義diaplay方法用於將時間信息打印出來。爲MyTime類添加如下方法addSecong(int sec)、addMinute(int min)、addHour(int hou)、subSecond(int sec)、subMinute(int min)、subHour(int hou)分別對時、分、秒進行加減運算。
*/
class MyTime{
    private int hour;
    private int minute;
    private int second;
    //使用構造器的方式進行初始化
    public MyTime(int hour,int minute,int second){
        this.hour=hour;
        this.minute=minute;
        this.second=second;
    }
    /*題幹要求使用構造器的方法進行初始化就不須要封裝了
    public void setHour(int hou){
        hour=hou;
    }
    public int getHour(){
        return hour;
    }
    public void setMinute(int min){
        minute=min;
    }
    public int getMinute(){
        return minute;
    }
    public void setSecond(int sec){
        second=sec;
    }
    public int getSecond(){
        return second;
    }
    */
    public void diapaly(){
        System.out.println(this.hour+":"+this.minute+":"+this.second);
    }
    public int addHour(int hou){
        hour+=hou;
        return hour;
    }
    public int subHour(int hou){
        hour-=hou;
        return hour;
    }
    public int addMinute(int min){
        minute+=min;
        return minute;
    }
    public int subMinute(int min){
        minute-=min;
        return minute;
    }
    public int addSecond(int sec){
        second+=sec;
        return second;
    }
    public int subSecond(int sec){
        second-=sec;
        return second;
    }
}
class AnotherMyTime{
    public static void main(String[] args){
        //建立時間
        MyTime B=new MyTime(15,25,37);
        B.diapaly();
        //修改時間
        B.addHour(2);
        B.addMinute(10);
        B.subSecond(7);
        B.diapaly();
    }
}this

/**06.編寫Java程序模擬簡單的計算器。定義名爲MyNumber的類中有兩個整型成員n1和n2應聲明爲私有。編寫構造方法賦予n1和n2初始值再爲該類定義加addition、減subtration、乘multiplication、除duvision等公有成員方法分別對兩個成員變量執行加、減、乘、除的運算。在main方法中建立MyNumber類的對象賦予n1和n2初始值低調用各個方法並顯示計算結果。
*/
class MyNumber{
    private int n1;
    private int n2;
    //使用構造器的方式進行初始化
    public MyNumber(int n1,int n2){
        this.n1=n1;
        this.n2=n2;
    }
    /*題幹要求使用構造器的方法進行初始化就不須要封裝de 方法了
    public void setN1(int n){
        n1=n;
    }
    public int getN1(){
        return n1;
    }
    public void setN2(int n){
        n2=n;
    }
    public int getN2(){
        return n2;
    }
    */
    public void addition(){
        int add=0;
        add=n1+n2;
        System.out.println("兩數相加結果爲"+add);
    }
    public void subtration(){
        int sub=0;
        if(n1>=n2){
            sub=n1-n2;
        }else{
            sub=n2=n1;
        }
        System.out.println("兩數相減結果爲"+sub);
    }
    public void multiplication(){
        int mul=1;
        mul=n1*n2;
        System.out.println("兩數相乘結果爲"+mul);
    }
    public void duvision(){
        double duv=0.00;
        duv=n1/n2;
        System.out.println("兩數相除結果爲"+duv);
    }
}
public class AnotherMyNumber{
    public static void main(String[] args){
        MyNumber time=new MyNumber(72,3);
        time.addition();
        time.subtration();
        time.multiplication();
        time.duvision();
    }
}對象

/**07.構造方法編寫java程序用於顯示人的姓名和年齡。定義一我的類Person
、該類中應該有兩個私有屬性姓名name和年齡age。定義構造方法用來初始化數據成員。在定義顯示display方法將姓名和年齡打印出來。在main中建立人類的實例而後將信息顯示出。
*/
class Person{
    private String name;
    private int age;
    public Person(String name,int age){
        this.name=name;
        this.age=age;
    }
    /*題幹要求使用構造器的方法進行初始化就不須要封裝de 方法了
    public void setName(String myName){
        name=myName;
    }
    public String getName(){
        return name;
    }
    public void setAge(int myAge){
        age=myAge;
    }
    public int getAge(){
        return age;
    }
    */
    public void display(){
        System.out.println(name);
        System.out.println(age);
    }
}
public class TestPerson{
    //任何類均可以使用主方法
    public static void main(String[] args){
        Person p=new Person("翠花",18);
        p.display();
    }
}遊戲

/**08.按要求編寫一個Java應用程序:
(1)編寫一個矩形類Rect,包含矩形的寬width;矩形的高height.
兩個構造方法:
1.一個帶有兩個參數的構造方法,用於將width和height屬性初始化;
2.一個不帶參數的構造方法,將矩形初始化爲寬和高都爲10.
兩個方法:
求矩形面積的方法area();
求矩形周長的方法perimeter();
*/
class Rect{
    int width;
    int height;
    //構造器初始化
    public Rect(int width, int height){
        this.width=width;
        this.height=height;
    }
    //不帶參數的構造器,將矩形初始化爲寬和高都爲10
    public Rect(){
        //this可省略
        this.width=10;
        this.height=10;
        
    }
    public void area(){
        int area=1;
        area=width*height;
        System.out.println("矩形的面積爲"+area);
    }
    public void perimeter(){
        int perimeter=0;
        perimeter=2*(width+height);
        System.out.println("矩形的周長爲"+perimeter);
    }
}
public class TestRect{
    public static void main(String[] args){
        //建立一個對象
        Rect a=new Rect(12,6);
        //求面積
        a.area();
        //求周長
        a.perimeter();
        //建立另外一個對象
        Rect b=new Rect();
        b.area();
        b.perimeter();
    }
}ip

/**09.類屬性和類方法 定義一個類MyMath,提供基本的加減乘除(能夠本身來擴展)功能,而後進行測試
*/
class MyMath{
    static double PI=3.14;
    //圓的面積的計算
    public static double area(int r){
        return PI*r*r;
    }
    public static int add(int a, int b){
        return a+b;
    }
    public static int sub(int a,int b){
        return a-b;
    } 
    public static int mul(int a, int b){
        return a*b;
    }
    public static int div(int a, int b){
        return a/b;
    }
}
public class TestMyMath{
    public static void main(String[] args){
        double area=MyMath.area(5);
        System.out.println("圓的面積是"+area);
        int addresult=MyMath.add(12,13);
        System.out.println(addresult);
        int subresult=MyMath.sub(29,4);
        System.out.println(subresult);
        int mulresult=MyMath.mul(5,5);
        System.out.println(mulresult);
        int divresult=MyMath.div(75,3);
        System.out.println(divresult);
    }
}get

likesoop;2.寫一個構造方法,以便簡化初始化過程,如WuMingFen f1=new WuMingFen("牛肉",3,true);3.重載構造方法,使得初始化過程能夠多樣化WuMingFen f2=new WuMingFen("牛肉",2);4.使得下列語句構造出來的粉對象是酸辣面碼、2兩、帶湯的WuMingFen f3=newWuMingFen();5.寫一個普通方法check()用於查看粉是否符合要求。即:將對象的三個屬性打印在控制檯上 */ class WuMingFen{     String theMa;     int quality;     boolean likesoop;     public WuMingFen(String theMa,int quality,boolean likesoop){         //爲了不代碼的重複性,在構造器內相互調用         this(theMa,quality);         this.likesoop=likesoop;     }     public WuMingFen(String theMa,int quality){         this.theMa=theMa;         this.quality=quality;     }     public WuMingFen(){              }     public void check(){         System.out.println(theMa+"粉"+quality+likesoop);     } } public class Fen{     public static void main(String[] args){         WuMingFen f1=new WuMingFen("牛肉",3,true);         f1.check();         WuMingFen f2=new WuMingFen("牛肉",2);         f2.check();         WuMingFen f3=new WuMingFen("酸辣",2,true);             f3.check();         WuMingFen f4=new WuMingFen();         f4.theMa="酸辣";         f4.quality=5;         f4.likesoop=true;         f4.check();     } }

相關文章
相關標籤/搜索