首页 > 其他分享 >本章练习

本章练习

时间:2023-03-26 13:01:20浏览次数:28  
标签:name 本章 double 练习 System println public String

1 例4 254

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

//编写类A03,实现数组的复制功能copyArr,输入旧数组,返回一个新数组,元素和旧数组一样
public class Test36
{
  public static void main(String[] args)
  {
    int[] oldArr={10,20,30};//创建旧数组
    A03 a03 = new A03();//类实体化
    int[] newArr = a03.copyArr(oldArr);//引用方法,并被接收

    System.out.println("====newArr数组====");
    for(int i=0;i<newArr.length;i++)//输出新数组
    {
      System.out.print(newArr[i]+" ");
    }
  }
}
class A03
{
  public int[] copyArr(int[] oldArr)
  {
    //先创建一个新数组长度为oldArr.length
    int[] newArr = new int[oldArr.length];
    //遍历赋值
    for(int i=0;i<oldArr.length;i++)
    {
      newArr[i]=oldArr[i];
    }
    return newArr;
  }
}

2 例5 255

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

//定义一个圆类Circle,定义属性:半径,提供显示圆周长功能的方法,提供显示圆面积的方法
public class Test36
{
  public static void main(String[] args)
  {
    Circle c1 = new Circle(3);
    System.out.println("面积="+c1.area());
    System.out.println("周长="+c1.len());
  }
}
class Circle
{
  double banjing;
  public Circle(double banjing)
  {
    this.banjing=banjing;
  }
  public double area()//面积
  {
    return Math.PI*banjing*banjing;
  }
  public double len()//周长
  {
    return 2*Math.PI*banjing;
  }
}

3 例6 256

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

//编程创建一个Cale计算类,在其中定义2个变量表示两个操作数,  256
//定义四个方法实现求和、差、乘、商(要求除数为0的话,要提示)并创建两个对象,分别测试
public class Test36
{
  public static void main(String[] args)
  {
    Cale c1 = new Cale(4,0);
    System.out.println("和="+c1.sum());
    System.out.println("差="+c1.minus());
    System.out.println("乘="+c1.mul());
    Double div = c1.div();
    if(div!=null)
    {
      System.out.println("除="+div);
    }
  }
}
class Cale
{
  double num1;
  double num2;
  public Cale(double num1,double num2)
  {
    this.num1=num1;
    this.num2=num2;
  }
  //和
  public double sum()
  {
    return num1+num2;
  }
  //差
  public double minus()
  {
    return num1-num2;
  }
  //乘
  public double mul()
  {
    return num1*num2;
  }
  //除
  public Double div()//Double是一种类,可以返回null,如果是double这种基本数据类型是不能接收返回null的
  {
    //判断
    if(num2==0)
    {
      System.out.println("num2不能为0");
      return null;
    }
    else
    {
      return num1/num2;
    }
  }
}

4 例7 257

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

//设计一个Dog类,有名字、颜色和年龄属性,定义输出方法show()显示其信息。并创建对象,进行测试、【提示this.属性】
public class Test36
{
  public static void main(String[] args)
  {
    Dog d1 = new Dog("旺财",18,"白色");
    d1.show();
  }
}
class Dog
{
  String name;
  int age;
  String color;
  //构造器
  public Dog(String name,int age,String color)
  {
    this.name=name;
    this.age=age;
    this.color=color;
  }
  //输出方法show
  public void show()
  {
    System.out.println("====狗狗信息如下====");
    System.out.println("名字:"+this.name+"\n年龄:"+this.age+"\n颜色:"+this.color);
  }
}

5 例8 257

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

//判断输出
public class Test36//公共类
{
  int count = 9;//属性
  public void count1()//成员方法
  {
    count=10;//这个count就是属性,相当于将int count=9;改成了10
    System.out.println("count1="+count);//10

  }
  public void count2()//成员方法
  {
    System.out.println("count1="+count++);
  }

  //这是Test36的main方法,任何一个类都可以有main
  public static void main(String args[])
  {
    //new Test36()是匿名对象(只能用一次,使用后就不能在使用了),然后紧接着调用count1方法
    new Test36().count1();

    Test36 t1 = new Test36();
    t1.count2();//9
    t1.count2();//10
  }
}

6. 例9 258

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

//定义Music类,里面有音乐名name、音乐时长times属性,并有播放play功能和返回本身属性信息的功能方法getlnfo
public class Test37
{
  public static void main(String[] args)
  {
    Music music = new Music("歌唱祖国",300);
    music.play();
    System.out.println(music.getlnfo());
  }
}
class Music
{
  String name;
  int times;
  //构造器
  public Music(String name,int times)
  {
    this.name=name;
    this.times=times;
  }
  //播放play功能
  public void play()
  {
    System.out.println("音乐"+name+" 正在播放中……时长为"+times+"秒");
  }
  //返回本身属性信息的功能方法getlnfo
  public String getlnfo()
  {
    return "音乐"+name+" 播放时长为"+times;
  }
}

7. 例10 258

试写出以下代码的运行结果()

//判断输出  258
public class Test37
{
  public static void main(String[] args)//运行它
  {
    Demo d1 = new Demo();
    Demo d2 =d1;
    d2.m();
    System.out.println(d1.i);//101
    System.out.println(d2.i);//101
  }
  
}
class Demo
{
  int i=100;
  public void m()
  {
    int j=i++;
    System.out.println("i="+i);//101
    System.out.println("j="+j);//100
  }
}

8. 例11 259

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

public double method(double d1,double d2){……}

9. 例12 259

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

public class Test37
{
  public static void main(String[] args)//运行它
  {
    //只演示构造器复用,具体数据略过
  }
}
class Employee
{
  //名字,性别,年龄,职位,薪水
  String name;
  char gender;
  int age;
  String job;
  double sal;
  //要求充分复用构造器,所以先写属性少的构造器
  //职位,薪水
  public Employee(String job,double sal)
  {
    this.job=job;
    this.sal=sal;
  }
  //名字,性别,年龄
  public Employee(String name,char gender,int age)
  {
    this.name=name;
    this.gender=gender;
    this.age=age;
  }
  //名字,性别,年龄,职位,薪水
  public Employee(String name,char gender,int age,String job,double sal)
  {
    // this.name=name;
    // this.gender=gender;
    // this.age=age;
    // this.job=job;
    // this.sal=sal;
    //构造器复用
    this(name, gender, age);//因为构造器复用只能放在第一条语句,所以只能复用一个构造器
    this.job=job;//这两条只能正常写啦
    this.sal=sal;
  }
}

10. 例13 260

13.将对象作为参数传递给方法。

(1)定义一个Circle类,包含一个double型的radius属性代表圆的半径,—findArea()方法返回圆的 面积。(2)定义一个类PassObject,在类中定义一个方法printAreas(),该方法的定义如下:public void printAreas(Circle c, int times)

(3)在printAreas方法中打印输出1到times之间的每个整数半径值,以及对应的面积。例如,times为5,则输出半径1,2,3,4,5,以及对应的圆面积。

(4)在main方法中调用printAreas()方法,调用完毕后输出当前半径值。程序运行结果如图所示

//将对象作为参数传递给方法。
// (1)定义一个 Circle类,包含一个 double型的 radius属性代表圆的半径, ——findArea()方法返回圆的 面积。
// (2)定义一个类PassObject,在类中定义一个方法printAreas(),
//    该方法的定义如下: public void printAreas(Circle c,int times)
// (3)在printAreas方法中打印输出1到times之间的每个整数半径值,以及对应的面积。
//    例如,times为5,则输出半径1,2,3,4,5,以及对应的圆面积。
// (4)在main方法中调用printAreas()方法,调用完毕后输出当前半径值。程序运行结果如图所示
public class Test37
{
  public static void main(String[] args)//运行它
  {
    Circle c = new Circle();
    PassObject po = new PassObject();
    po.printAreas(c,5);
  }
}
//(1)定义一个 Circle类,包含一个 double型的 radius属性代表圆的半径, 
//——findArea()方法返回圆的 面积。
class Circle
{
  double radius;//属性半径
  public double findAreas()//计算面积
  {
    return Math.PI*radius*radius;
  }
  //添加方法setRadius,修改对象的半径
  public void setRadius(double radius)
  {
    this.radius = radius;
  }
}
//(2)定义一个类PassObject,在类中定义一个方法printAreas()
//(3)
//(4)
class PassObject
{
  public void printAreas(Circle c,int times)
  {
    System.out.println("radius\tarea");
    for(int i=1;i<=times;i++)
    {
      //注意说明,首先呢findAreas()是无参类型的,我们要用findAreas方法把i当半径想计算面积,
      //就要包把i当作findAreas方法中的半径,有此方法无参所以再写一个修改半径setRadius方法,
      //在调用findAreas()之前调用setRadius(i)方法就好了
      c.setRadius(i);//修改对象半径
      System.out.println(i+"\t"+c.findAreas());//打印半径和面积
      c.findAreas();//计算面积
    }
  }
}

10.1 简易版

//简易版
public class Test37
{
  public static void main(String[] args)//运行它
  {
    Circle c = new Circle();
    PassObject po = new PassObject();
    po.printAreas(c,5);
  }
}
//(1)定义一个 Circle类,包含一个 double型的 radius属性代表圆的半径, 
//——findArea()方法返回圆的 面积。
class Circle
{
  public double findAreas(int radius)//计算面积
  {
    return Math.PI*radius*radius;
  }
}
//(2)定义一个类PassObject,在类中定义一个方法printAreas()
//(3)
//(4)
class PassObject
{
  public void printAreas(Circle c,int times)
  {
    System.out.println("radius\tarea");
    for(int i=1;i<=times;i++)
    {
      System.out.println(i+"\t"+c.findAreas(i));//打印半径和面积
      c.findAreas(i);//计算面积
    }
  }
}


标签:name,本章,double,练习,System,println,public,String
From: https://blog.51cto.com/u_15784725/6150261

相关文章