Java基础第七章 面向对象编程(基础)(章节练习)

(1)编写类A01,定义方法max实现求某个double数组的最大值,并返回

public class Homework01{
   public static void main(String[] args){
        A01 m = new A01();
       double[] arr = {1.2,1.5,3.6,2.5}; 
        Double res = m.max(arr);
        if(res != null){
            System.out.println("arr的最大值="+ res);
        }else{
            System.out.println("您的输入有误");
        }
           System.out.println(m.max(arr));
    }
}
class A01{
    public Double max(double[] arr){
        double max = arr[0];
        //保证数组长度大于0;
        if(arr!= null && arr.length > 0){
        for(int i = 0;i < arr.length-1;i++){
            if(arr[i]< arr[i+1]){
                max = arr[i+1];
            }
        }
        return max;
    }else{
            return null;
        }
    }
}

(2)编写类A02,定义方法find,实现查找某字符串数组中的元素查找,并返回索引,如果找不到,返回-1

public class Homework02{
   public static void main(String[] args){
        A02 m = new A02();
        String[] arr = {"小明","小红","小花"};
        Integer res = m.find("小明",arr);
        if (res == null) {
            System.out.println("您的输入有误");
        }else{
        System.out.println(res);
        }
    }
}
class A02{
    public Integer find(String findStr,String[] arr){
        if(arr != null && arr.length != 0){ 
        for(int i = 0;i < arr.length;i++){
            if(findStr.equals(arr[i])){
                return i;
            }
        }
            return -1;
            }
            return null;
    }
}

(3)编写类Book,定义方法updatePrice,实现更改某本书的价格:具体:如果价格>150,则更改为150,如果价格>100,则更改为100,否则不变

//import java.util.Scanner;
public class Homework03{
    public static void main(String[] args){
        Book p = new Book("lala",121);
        p.info();
        p.updatePrice();
        p.info();
        // Scanner myScanner = new Scanner(System.in);
        // int price = myScanner.nextInt();
        // System.out.println("更改后的价格为"+p.updatePrice(price));
        
    }
}
class Book{
    // public int updatePrice(int price){
    //     if(price > 100 && price < 150){
    //         price = 100;
    //     }else if(price > 150){
    //         price = 150;
    //     }else{
    //         price = price;
    //     }
    //     return price;
    // }
    String name;
    int price;
    public Book(String name,int price){
        this.name = name;
        this.price = price;
    }
    public void updatePrice(){
        if(this.price > 150){
            this.price = 150;
        }else if(this.price > 100){
            this.price = 100;
        }else{
            this.price = price;
        }
    }
    public void info(){
        System.out.println("书名"+this.name+"价格"+this.price);
    }
}

(4)编写类A03,实现数组的复制功能copyArr,输入就数组,返回一个新数组,元素和就数组一样

public class Homework04{
public static void main(String[] args){
        int[] old={1,4,7,9,4};
        A03 m = new A03(old);
        int[] arr = m.copyArr(old);
        for(int i = 0;i < arr.length;i++){
            System.out.print(arr[i]);
        }
    }
}
class A03{
    int[] arr = new int[5];
    public A03(int[] arr){
        this.arr = arr;
    }
    public int[] copyArr(int[] old){     
        for(int i = 0; i < old.length;i++){
            this.arr[i] = old[i];
        }
        return arr;
    }
}

(5)定义一个圆类Circle,定义属性:半径,提供显示圆周长功能的方法,提供显示圆面积的方法

public calss Homework{
   public class Hello{
      public static void main(String[] args){
        Circle c = new Circle(3);
        System.out.println("圆的周长是"+c.L());
        System.out.println("圆的面积是"+c.S());
    }
}
class Circle{
    double r;
    public Circle(double r){
        this.r = r;
    }
    public double L(){       
        return 2 * Math.PI * r;
    }
    public double S (){
        return Math.PI * r * r;
    }
}

(6)编程创建一个cale计算类,在其中定义2个变量表示两个操作数,定义四个方法实现求和、差、乘、商(要求除数为0的话,要提示),并创建两个对象,分别测试

import java.util.Scanner;
public class Homework06{
     public static void main(String[] args){
        System.out.println("请输入两个您想要计算的数");
        Scanner myScanner = new Scanner(System.in);
        double a = myScanner.nextDouble();
        double b = myScanner.nextDouble();
        cale math = new cale(a,b);
        System.out.println(math.add());
        System.out.println(math.min());
        System.out.println(math.mul());
        math.exc();
    }
}
class cale{
    double a;
    double b;
    public cale(double a,double b){
        this.a = a;
        this.b = b;
    }
    public double add(){
        return a + b;
    }
    public double min(){
        return a - b;
    }
    public double mul(){
        return a * b;
    }
    public void exc(){
        if (b == 0){
            System.out.println("被除数不能为0,请重新输入");
        }else{
            System.out.println(a / b);
        }
    }
}

(7)设计一个Dog类,有名字、颜色和年龄属性,定义输出方法show()显示其信息。并创建对象,进行测试

    }
}
class Dog{
    String name;
    String color;
    int age;
    public Dog(String name,String color,int age){
        this.name = name;
        this.color = color;
        this.age = age;
    }
    public void show(){
        System.out.println("这只狗叫"+name+"\n"+"它的颜色是"+color+"\n" +"它的年龄是"+ age);
    }
}

(8)给定一个Java程序的代码如下所示,则编译运行后,输出结果是: 10 9 10

public class Test{//公有类
    int count = 9;
    public void count1(){
        count = 10;
        System.out.println("count1="+count);
    }
    public void count2(){
        System.out.println("count1="+count++);//注意是先输出,再自增
    }
    public static void main(String[] args){//主方法
      //new Test()是匿名对象,匿名对象使用后,就不能使用。也就是有在堆里,用一次就被销毁。
        new Test().count1();
        Test t1 = new Test();
        t1.count2();
        t1.count2();
    }
}

(9)定义Music类,里面有音乐名name、音乐时长times属性,并有播放play功能和返回本身属性信息的功能方法getInfo

public class Homework09{
    public static void main(String[] args){
       Music music = new Music("晴天",180) ;
       music.play();
        System.out.println(music.getInfo());
    }
}
class Music{
    String name;
    double time;
 public  Music(String name,double time){
     this.name = name;
     this.time = time;
 }  
    public void play(){
        System.out.println(name+"正在播放...");
    }
    public String getInfo(){
        return "音乐"+ name + "时长" + time;
    }
}

(10)在测试方法中,调用method方法,代码如下,编译正确,试写出method方法的定义形式,调用语句为System.out.println(method(10.0,20.0),100));

    public double method(double a,double b){

(11)创建一个Employee类,属性有(名字,性别,年龄,职位,薪水),提供三个构造器方法,可以初始化(1)(名字,性别,年龄,职位,薪水)(2)(名字,性别,年龄)(3)(职位,薪水)

public class Homework11{
    public static void main(String[] args){
        
    }
}
class Employee{
    String name;
    char sex;
    int age;
    String posi;
    int money;
    public Employee(String posi,int money){
        this.posi = posi;
        this.money = money;
    }
     public Employee(String name,char sex,int age){
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
     public Employee(String name,char sex,int age,String posi;int money){
        this(name,sex,age);//this使用前面构造器时,只能写在第一行
        this.posi = posi;
        this.money = money;
    }
}

(12)将对象作为参数传递给方法

(1)定义一个Circle类,包含一个double型的radius属性代表圆的半径,findArea()方法返回圆的面积。

(2)定义一个类PassObject,在类中定义一个方法printAreas(),该方法的定义如下:

public void printAreas(Cirle c,int times)

(3)在printAreas方法中打印出1到times之间的每个整数半径值,以及对应的面积。

(4)在main方法中调用printAreas方法,调用完毕后输出当前半径值。

public class Homework12{
   public static void main(String[] args){
        PassObject o = new PassObject();
        Circle c = new Circle();
        o.printAreas(c,5);
    }
}
class Circle{
    double radius;
    public double findArea(){
        return Math.PI * radius * radius;
    }
    public double set(double radius){
        return this.radius = radius;
    }
}
class PassObject{
    public void printAreas(Circle c,int times){
         System.out.println("radius\tarea");
        for(double i = 1.0;i <= times;i++){          
            c.set(i);
            System.out.println(i + "\t" + c.findArea());
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值