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);//计算面积
}
}
}