(十一)java几个经典例题

(十一)java几个经典例题


学了这么久,对面向对象的理解如何了,做做这几个经典的例题,可以加深对面向对象的理解哦!
1、 将一个数组中的元素逆序存放。
思路:首尾元素的位子相互调换。

public static void sevenInverse() {
		int a[]=new int [] {1,2,3,4,5,6,7};
		System.out.println("原数组a:"+Arrays.toString(a));
		//首尾互换
		for (int i = 0; i < a.length/2; i++) {
			int tem=a[i];
			a[i]=a[a.length-1-i];
			a[a.length-1-i]=tem;
		}
		System.out.println("倒置后数组a:"+Arrays.toString(a));
	}

2、 编写一个方法,输出大于200的最小的质数。
思路:质数的判定条件,当找出第一个后就不在运行程序

public static void SIXTEENsushu() {
		int count=0;
		for (int i = 200; ; i++) {
			if (count==0) {
				for (int j = 2; j <i/2; j++) {
					if(i%j==0) {
						System.out.println(i+"不是素数");
						break;
					}
					if(j==i/2-1) {
						System.out.println(i+"是素数");
						count++;
						break;
					}
				}
			}
			if(count==1){
				break;
			}
		}
	}

3、 创建一个球员类,并且该类最多只允许创 建十一个对象。提示利用 static 和 封装性来完成。
思路:单例模式的使用。

public class Player {
	private static int sum=0;
	private Player() {//私有构造,不允许其他类进行实例化。
		System.out.println("创建了一个球员类"+sum);
	}
	//共有的实例化
	public static Player create() {
		Player p=null;
		while (sum<=10) {
			p=new Player();
			sum++;
		}
		return p;
	}
	//测试类
public class TestPlayer {
	public static void main(String[] args) {
		Player p=null;
		p.create();
		
		
	}
}

4、设计三个类,分别如下:
• 4.1 设计Shape表示图形类,有面积属性area、周长属性per, 颜色属性color,有两个构造方法(一个是默认的、一个是 为颜色赋值的),还有3个抽象方法,分别是:getArea计算 面积、getPer计算周长、showAll输出所有信息,还有一个求 颜色的方法getColor。
• 4.2 设计 2个子类:
• 4.2.1 Rectangle表示矩形类,增加两个属性,Width表示长度 、height表示宽度,重写getPer、getArea和showAll三个方法 ,另外又增加一个构造方法(一个是默认的、一个是为高度 、宽度、颜色赋值的)。
• 4.2.2 Circle表示圆类,增加1个属性,radius表示半径,重写 getPer、getArea和showAll三个方法,另外又增加两个构造 方法(为半径、颜色赋值的)。
• 4.3 在main方法中,声明创建每个子类的对象,并调用2个 子类的showAll方法。
思路:抽象类的使用。
抽象类shape

public abstract class Shape {
	double area;
	double per;
	String color;
	
	public Shape() {
	}
	
	public Shape(String color) {
		this.color = color;
	}
	
	public abstract double getArea();
	public abstract double getPer();
	public abstract void showAll();

	public String getColor() {
		return color;
	}
}

矩形类继承了shape,重写了父类的方法

public class Rectangle extends Shape {
	
	double width;
	double height;
		
	public Rectangle() {
	}
	
	public Rectangle(String color,double w,double h) {
		super(color);
		this.width=w;
		this.height=h;
	}

	@Override
	public double getArea() {
		area=width*height;
		return area;
	}
	@Override
	public double getPer() {
		per=(width+height)*2;
		return per;
	}
	@Override
	public void showAll() {
		System.out.println("per is "+getPer()+"  area is "+getArea());
	
	}
}

圆形类+测试

public class Circle extends Shape {
	double r;
	
	public Circle() {
		super();
	}

	public Circle(String color,double r) {
		super(color);
		this.r = r;
	}

	@Override
	public double getArea() {
		area=3.14*r*r;
		return area;
	}

	@Override
	public double getPer() {
		per=2*r*3.14;
		return per;
	}

	@Override
	public void showAll() {
		System.out.println("per is "+getPer()+"  area is "+getArea());
	}

	public static void main(String[] args) {
		Rectangle rectangle=new Rectangle("red", 10, 10);
		rectangle.showAll();
		Circle circle=new Circle("blue", 2);
		circle.showAll();
	}
}

5、编写一个检查给定的数字的数据类型是否为byte的程序 ,如果此数字超出byte数据类型表示的数的范围,则引发 用户自定义的异常ByteSizeException,并显示相应的错误信息。

6、编写三个系别的学生类:英语系,计算机系,文学系( 要求通过继承学生类)
6.1各系有以下成绩:
• 英语系: 演讲,期末考试,期中考试;
• 计算机系:操作能力,英语写作,期中考试,期末考试;
• 文学系: 演讲,作品,期末考试,期中考试

6.2各系总分评测标准
• 英语系: 演讲 50% • 期末考试 25% • 期中考试 25%
• 计算机系: 操作能力 40% • 英语写作 20% • 期末考试 20% • 期中考试 20%
• 文学系: 演讲 35% • 作品 35% • 期末考试 15% • 期中考试 15%

6.3定义一个可容纳5个学生的学生类数组,使用 随机数给该数组装入各系学生的对象,然后按如下格式输出数组中的信息: • 学号:XXXXXXXX 姓名:XXX 性别:X 年龄: XX 综合成绩:XX
学生类:

public class Student {
	int xh;
	String name;
	String sex;
	int age;
	int score;
	
	
	
	public Student(int xh, String name, String sex, int age) {
		super();
		this.xh = xh;
		this.name = name;
		this.sex = sex;
		this.age = age;
	}

	public int getscore() {
		return score;
	}
	
	@Override
	public String toString() {
		return "Student [xh=" + xh + ", name=" + name + ", sex=" + sex + ", age=" + age + ", score=" + getscore() + "]";
	}
	
}

计算机系:

public class ComputerStudent extends Student{
	int caozuo;
	int xiezuo;
	int qimo;
	int qizhong;
	
	public ComputerStudent(int xh, String name, String sex, int age, int caozuo, int xiezuo, int qimo, int qizhong) {
		super(xh, name, sex, age);
		this.caozuo = caozuo;
		this.xiezuo = xiezuo;
		this.qimo = qimo;
		this.qizhong = qizhong;
	}

	public int getscore() {
		score=(int) (caozuo*0.4+xiezuo*0.2+qimo*0.2+qizhong*0.2);
		return score;
	}

}

其他的2个类同理。
测试类:使用数组创建学生对象类,在调用tostring的方法

public class Test {
	public static void main(String[] args) {
		String string[]=new String[5];
		int []a=new int[5];
		Student []stu=new Student[5];
		//转型问题,如果用父类引用指向子类对象,就可以实例不同的子类对象了,这就是为什么要用father f=new son的原因了
		stu[0]=new EnglishStu(0, "xiaoming", "男", 22, 11, 50, 60);
		stu[1]=new ComputerStudent(1, "xiaoli", "女", 22, 66, 66, 66, 66);
		stu[2]=new literatureStudent(2, "xiaoji", "男", 23, 55, 55, 99, 99);
		stu[3]=new EnglishStu(3, "xiaoping", "男", 22, 55, 56, 60);
		stu[4]=new literatureStudent(4, "xiaoci", "男", 22, 108, 100, 100, 99);
		for (int i = 0; i < stu.length; i++) {
			System.out.println(stu[i].toString());
		}
	}
}
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,可以使用 `java.util.zip` 包来将多个文件合并成 zip 文件。具体的步骤如下: 1. 首先导入 `java.util.zip` 包中的相关类: ```java import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; ``` 2. 创建一个 `ZipOutputStream` 对象,并指定要生成的 zip 文件路径: ```java String zipFilePath = "path/to/zip/file.zip"; ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(zipFilePath)); ``` 3. 循环将要合并的文件添加到 zip 文件中。首先创建一个 `File` 对象,表示要添加的文件: ```java String file1Path = "path/to/file1.txt"; File file1 = new File(file1Path); ``` 4. 创建一个 `ZipEntry` 对象,用于向 zip 文件中添加文件的实际内容。并将其添加到 `ZipOutputStream` 对象中: ```java ZipEntry zipEntry = new ZipEntry(file1.getName()); zipOutputStream.putNextEntry(zipEntry); ``` 5. 使用 `FileInputStream` 读取要添加的文件内容,并使用 `ZipOutputStream` 将文件内容写入 zip 文件: ```java byte[] buffer = new byte[1024]; int length; FileInputStream fileInputStream = new FileInputStream(file1); while ((length = fileInputStream.read(buffer)) > 0) { zipOutputStream.write(buffer, 0, length); } fileInputStream.close(); ``` 6. 重复步骤 3 - 5,将所有要合并的文件都添加到 zip 文件中。 7. 最后关闭 `ZipOutputStream` 对象,完成 zip 文件的合并操作: ```java zipOutputStream.close(); ``` 以上就是使用 Java 将多个文件合并成 zip 文件的基本步骤。可以根据实际需求进行适当的修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值