博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java第八天-面向对象练习
阅读量:6101 次
发布时间:2019-06-20

本文共 9108 字,大约阅读时间需要 30 分钟。

hot3.png

/**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;
}

/**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();
    }
}

/**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();
    }
}

/**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();
    }
}

/**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);
    }
}

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();
    }
}

转载于:https://my.oschina.net/u/4110331/blog/3045797

你可能感兴趣的文章
Office WORD如何取消开始工作右侧栏
查看>>
Android Jni调用浅述
查看>>
CodeCombat森林关卡Python代码
查看>>
第一个应用程序HelloWorld
查看>>
(二)Spring Boot 起步入门(翻译自Spring Boot官方教程文档)1.5.9.RELEASE
查看>>
Android Annotation扫盲笔记
查看>>
React 整洁代码最佳实践
查看>>
聊聊架构设计做些什么来谈如何成为架构师
查看>>
Java并发编程73道面试题及答案
查看>>
iOS知识小集·设置userAgent的那件小事
查看>>
移动端架构的几点思考
查看>>
Tomcat与Spring中的事件机制详解
查看>>
Spark综合使用及用户行为案例区域内热门商品统计分析实战-Spark商业应用实战...
查看>>
初学者自学前端须知
查看>>
Retrofit 源码剖析-深入
查看>>
企业级负载平衡简介(转)
查看>>
ICCV2017 论文浏览记录
查看>>
科技巨头的交通争夺战
查看>>
当中兴安卓手机遇上农行音频通用K宝 -- 卡在“正在通讯”,一直加载中
查看>>
Shell基础之-正则表达式
查看>>