Java初学者编程练习
1、生成n个30以内的随机正整数(n输入指定)
生成n个30以内的随机正整数(n输入指定),统计并输出 0~10, 11~20, 21~30,各数段的数的个数,并输出所有数中的最大数和最小数。
import java.util.Random;
import java.util.Scanner;
public class TestC{
static int maxnum=0;
static int minnum=0;
static int sum1 = 0;
static int sum2 = 0;
static int sum3 = 0;
public static void main(String[] args) {
System.out.println("输入n: ");
Scanner s = new Scanner(System.in);
int n = s.nextInt();
Random random = new Random();
if(n<=0){
System.out.println("输入错误");
}else{
for(int i=0; i<n; i++){
//生成一个0~30的随机数
int num = random.nextInt(31);
//System.out.println("["+num+"]");
if(num>=0 && num<=10){
sum1++;
}else if(num>=11 && num<=20){
sum2++;
}else{
sum3++;
}
if(i==0) minnum=num;
if(num<minnum) minnum = num;
if(num>maxnum) maxnum = num;
}
}
System.out.println("0~10: "+sum1);
System.out.println("11~20: "+sum2);
System.out.println("21~30: "+sum3);
System.out.println("-------");
System.out.println("最小:"+minnum);
System.out.println("最大:"+maxnum);
}
}
运行结果:
输入n:
3
0~10: 1
11~20: 2
21~30: 0
-------
最小:2
最大:18
2、创建一个叫做机动车的类
(1)创建一个叫做机动车的类:
属性:车牌号(String),车速(int),载重量(double)
功能:加速(车速自增)、减速(车速自减)、修改车牌号,查询车的载重量。
编写两个构造方法:一个没有形参,在方法中将车牌号设置“XX1234”,速度设置为100,载重量设置为100;另一个能为对象的所有属性赋值;
(2)创建主类:
在主类中创建两个机动车对象。
创建第一个时调用无参数的构造方法,调用成员方法使其车牌为“鄂HA9752”,并让其加速。
创建第二个时调用有参数的构造方法,使其车牌为“鄂H15086”,车速为150,载重为200,并让其减速。
(3)输出两辆车的所有信息
public class TestC{
public static void main(String[] args) {
car car1 = new car();
car1.updateNum("鄂HA9752");
car1.upSpeed();
System.out.println(car1);
car car2 = new car("鄂H15086",150,200);
car2.downSpeed();
System.out.println(car2);
}
}
class car{
String num;
int speed;
double weight;
public car() {
this.num = "XX1234";
this.speed = 100;
this.weight = 100;
}
public car(String num, int speed, double weight) {
super();
this.num = num;
this.speed = speed;
this.weight = weight;
}
//加速
public void upSpeed(){
this.speed++;
}
//减速
public void downSpeed(){
this.speed--;
}
//更新车牌
public void updateNum(String num){
this.num = num;
}
//查询载重
public double findWeight(){
return this.weight;
}
@Override
public String toString() {
return "car [num=" + num + ", speed=" + speed + ", weight=" + weight + "]";
}
}
运行结果:
car [num=鄂HA9752, speed=101, weight=100.0]
car [num=鄂H15086, speed=149, weight=200.0]
3、定义一个接口CanFly,描述会飞的方法
(1)定义一个接口CanFly,描述会飞的方法public void fly();
(2)分别定义类飞机和鸟,实现CanFly接口。
(3)定义一个测试类,测试飞机和鸟,在main方法中创建飞机对象和鸟对象,再定义一个makeFly()方法,其中让会飞的事物飞。并在main方法中调用该方法,让飞机和鸟起飞。
interface CanFly{
public void fly();
}
class Plane implements CanFly{
public void fly(){
System.out.println("飞机会飞");
}
}
class Bird implements CanFly{
public void fly(){
System.out.println("鸟会飞");
}
}
public class TestC{
public static void main(String[] args) {
Plane plane = new Plane();
makeFly(plane);
Bird bird = new Bird();
makeFly(bird);
}
//重点
public static void makeFly(CanFly cf){
cf.fly();
}
}
运行结果:
飞机会飞
鸟会飞
思考:java中的接口是不是一个类(CanFly cf)?
接口和类同属于java数据类型的引用数据类型,它们是同等级的,接口并不是类。
类是用class定义,而接口是interface定义。