类的练习
-
编写类A01,定义方法max,实现求某个double数组的最大值,并返回 Homework01.java
-
编写类A02,定义方法find,实现查找某字符串数组中的元素查找,并返回索引, 如果找不到,返回 -1 Homework02.java
-
编写类Book,定义方法updatePrice,实现更改某本书的价格,具体:如果价格 > 150
, 则更改为150,如果价格 > 100 , 更改为100,否则不变 Homework03.java
-
-
定义一个圆类Circle, 定义属性:半径,提供显示圆周长功能的方法, 提供显示圆 面积的方法 Homework05.java
-
编程创建一个Cale计算类,在其中定义2个变量表示两个操作数,定义四个方法实 现求和、差、乘、商(要求除数为0的话,要提示) 并创建两个对象,分别测试
Homework06.java
7.设计一个Dog类,有名字 颜色 和年龄属性,定义输出方法show( )显示其信息。 并创建对象,进行测试、(提示 this.属性) Homework07.java
8.给定一个Java程序的代码如下所示,则编译运行后,输出的出结果是
public class Homework08 {
public static void main(String[] args) {
//1.new Homework08()是匿名对象,只能使用使用一次,因为没有名字也就是没有栈空间的指向
new Homework08().count1();
//2..count1()创建好匿名对象之后,就调用count1()
Homework08 t1 = new Homework08();
t1.count2();
t1.count2();
}
int count = 9;
public void count1() {
count = 10;
//3.这里的count是匿名对象的属性
System.out.println("count1=" + count);
//即将匿名对象的count更改为了10
}
public void count2() {
System.out.println("count1=" + count++);
//4.此时的t1对象的count属性是9,先输出之后再++也就是10
//先输出10后自增就是11
}
}
-
定义Music类,里面有音乐名name、音乐时长times属性,并有播放功能和返回本身属性信息的功能方法getInfo Homework09.java
10.试写出以下代码的运行结果( ) Homework09.java
class Demo {
int i = 100;
public void m() {
int j = i++;
//先赋值后自增,即j=100 ,i由于自增为101
System.out.println("i=" + i);
//此时打印i就为101
System.out.println("j=" + j);
//j为100
}}
class Test {
public static void main (String[]args){
Demo d1 = new Demo();
//创建一个对象然后d1指向这个对象的空间
Demo d2 = d1;
//将d1指向的空间给到d2,此时d1和d2都指向同一个对象
d2.m();
//执行m方法
//打印i=101 ,j=100
System.out.println(d1.i);
System.out.println(d2.i);
//由于d1和d2指向的都是同一个对象,因此i都是101
}}
-
在测试方法中,调用method方法,代码如下,编译正确,试写出method方法的 定义形式,调用语句为:
System.out.println(method(method(10.0,20.0),100);
Homework11.java
-
创建一个Employee类,属性有(名字,性别,年龄,职位,薪水),提供3个构造方法,可以初始化
(1): (名字,性别,年龄,职位,薪水) (2) : (名字,性别,年龄)(3) : (职位,薪水) , 要求充分复用构造器
Homework12.java
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()方法,调用完毕后输出当前半径值。
-
扩展题 有个人 Tom 设计他的成员变量. 成员方法, 可以电脑猜拳. 电脑每次都会随机生成 0, 1, 2 0 表示 石头 1 表示剪刀 2 表示 布 并要可以显示Tom的输赢次数(清单)
import java.util.Random;
import java.util.Scanner;
public class Homework15 {
public static void main(String[] args) {
//创建一个玩家对象
Tom1 t = new Tom1();
// 用来记录最后输赢的次数
int isWinCount = 0;
// 创建一个二维数组用来接收局数, Tom出拳情况以及电脑出拳情况
int[][] arr1 = new int[3][3];
int j = 0;
// 创建一个一维数组, 用来接收输赢情况
String[] arr2 = new String[3];
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
// 获取玩家出的拳
System.out.println("请输入你要出的拳(0-拳头, 1-剪刀, 2-布)");
int num = scanner.nextInt();
t.setTomGuessNum(num);
int tomGuess = t.getTomGuessNum();
arr1[i][j+1] = tomGuess;
//获取电脑的出拳
int comGuess = t.computerNum();
arr1[i][j+2] = comGuess;
//将玩家猜的拳和电脑的比较
String isWin = t.vsComputer();
arr2[i] = isWin;
arr1[i][j] = t.count;
// 对每一局的情况进行输出
System.out.println("===================================");
System.out.println("局数\t玩家的出拳\t电脑的出拳\t输赢情况");
System.out.println(t.count + "\t\t" + tomGuess + "\t\t\t" + comGuess + "\t\t" + t.vsComputer());
System.out.println("===================================");
System.out.println("\n\n");
isWinCount = t.winCount(isWin);
}
//对游戏的最终结果输出
System.out.println("局数\t玩家的出拳\t电脑的出拳\t\t输赢情况");
for(int a=0;a<arr1.length;a++){
for (int b=0;b<arr1[a].length;b++){
System.out.println(arr1[a][b]+"\t\t\t");
}
System.out.println(arr2[a]);
System.out.println();
}
System.out.println("你赢了"+isWinCount+"次");
}
}
// Tom类
class Tom1{// 核心代码
// 玩家出拳的类型
int tomGuessNum;
// 电脑出拳的类型
int comGuessNum;
// 玩家赢的次数
int winCountNum;
// 比赛的次数
int count = 1;
public void showInfo(){
//.....
}
//电脑随机生成猜拳数字的方法
// @return
public int computerNum(){
Random r = new Random();
comGuessNum = r.nextInt(3);//方法 返回0-2的随机数
//System.out.println(comGuessNum);
return comGuessNum;
}
//设置玩家猜拳的方法
// @param tomGuessNum
public void setTomGuessNum(int tomGuessNum) {
if (tomGuessNum > 2 || tomGuessNum < 0) {
//抛出一个异常
throw new IllegalArgumentException("数字输入错误");
}
this.tomGuessNum = tomGuessNum;
}
public int getTomGuessNum(){
return tomGuessNum;
}
//比较猜拳结果
//@return //玩家赢返回true, 否则返回false
public String vsComputer(){
//比较巧
if (tomGuessNum == 0 && comGuessNum ==1){
return "你赢了";
} else if (tomGuessNum == 1 && comGuessNum ==2){
return "你赢了";
} else if (tomGuessNum == 2 && comGuessNum ==0){
return "你赢了";
} else if (tomGuessNum == comGuessNum){
return "平手";
} else {
return "你输了";
}
}
public int winCount(String s){
count++;//控制玩的次数
if (s.equals("你赢了")) {
//统计赢的次数
winCountNum++;
}
return winCountNum;
}
}