{
int i,sum=0; 对象的初始化
1.设计一个包含有求累 if (a
for
MyCal,sum()方法可接受
(i=a;i<=b;i++)
一个或两个整形参数,如 { 果是一个参数,则是从自
然数1开始的累加,如果 sum=sum+i; 是两个参数m和n,求的 } 是从其中较小数到较大数
的累加和。试用MyCal类 System.out.println(\和
为:\求:
(1) 1+2+3+……….+100 }
else (2)
25+26+27+…………+60 {
MyCal.Java
System.out.println(\第public class MyCal
{ 一个数必须小于第二个 void sum(int n) 数!\ { } int i,sum=0; } if (n>0) public static void { main(String args[]) { MyCal c=new for(i=1;i<=n;i++) MyCal(); { c.sum(100); c.sum(25,60); sum=sum+i; } } }
System.out.println(\和输出结果: 为:\和为:5050 和为:1530 } 继承 else
按步骤编程设计,理 {
解类的继承与方法的重写
设计一个Animal类,属 System.out.println(\请(1)
性有质量、年龄、行为输入一个正数\
有吃(eat)、睡(sleep)、 }
} 呼吸(breathe)。 void sum(int a,int (2) 创建继承Animal的子b) 类fish,呼吸行为不同,
请重写呼吸方法。
(3) 在main方法中创建一个fish对象,执行吃(eat)、睡(sleep)、呼吸(breathe)方法。执行程序理解重写。 (4) 分别给Animal类和fish类创建一个无参的构造方法。编译执行,分析结果。 (5) 将fish类的构造方法改为带参,编译并分析结果。 Test2.java
/*(1) 设计一个Animal类,属性有质量、年龄、行为有吃(eat)、睡(sleep)、呼吸(breathe)。
(2) 创建继承Animal的子类fish,呼吸行为不同,请重写呼吸方法。
(3) 在main方法中创建一个fish对象,执行吃(eat)、睡(sleep)、呼吸(breathe)方法。执行程序理解重写。 (4) 分别给Animal类和fish类创建一个无参的构造方法。编译执行,分析结果。
(5) 将fish类的构造方法改为带参,编译并分析结果。*/
class Animal {
Animal() {
System.out.println(\这是Animal的无参构造函数\ }
double weight;
int birth; void eat() {
System.out.println(\动物吃东西\ }
void sleep() {
System.out.println(\动物睡觉\ }
void breathe() {
System.out.println(\动物呼吸\ } }
class fish extends Animal {
fish () {
System.out.println(\这是fish的无参构造函数\ }
fish(int a) {
System.out.println(\这是fish的带参构造函数\ }
void breathe() {
System.out.println(\鱼呼吸\ } }
public class Test2 {
public static void
main(String args[]) {
fish fish1 =new fish(); fish1.eat(); fish1.sleep(); fish1.breathe(); } }
输出结果:
这是Animal的无参构造函数
这是fish的无参构造函数 动物吃东西 动物睡觉 鱼呼吸 多态
按步骤编程设计,并对程序结果进行分析 (1) 设计一个抽象类
Animal类,其中包括一个抽象方法sleep()和调用该方法的goSleep方法。 (2)设计Animal的子类Bird,重写的sleep方法中显示”a bird sleeps on tree”。
(3) 设计Animal的子类Fish,仿照(2)中句式显示。
(4) 设计Animal的子类Person,仿照(2)中句式显示。
实例化三种不同的Animal对象,并调用goSleep()方法。 Test3.java
/*(1) 设计一个抽象类Animal类,其中包括一个抽象方法sleep()和调用该方法的goSleep方法。 (2)设计Animal的子类
Bird,重写的sleep方法中显示”a bird sleeps on tree”。
(3) 设计Animal的子类Fish,仿照(2)中句式显示。 (4) 设计Animal的子类Person,仿照(2)中句式显示。
实例化三种不同的Animal对象,并调用goSleep()方法。*/ abstract class Animal {
abstract void sleep();
void goSleep() {
sleep(); } }
class Bird extends Animal {
void sleep() {
System.out.println(\bird sleeps on tree\ } }
class Fish extends Animal {
void sleep() {
System.out.println(\fish sleeps in the sea\ } }
class Person extends Animal {
void sleep() import java.util.Arrays; { public class ArrayTest {
System.out.println(\ public static void main person sleeps in the bed\(String[] args) { } int item[]=new } int[10]; public class Test3 for(int { i=0;i<10;i++) public static void { main(String args[]) { item[i]=Integer.parseI Bird b =new Bird(); nt(args[i]); b.goSleep(); } Fish f=new Fish(); reverse(item); f.goSleep(); for(int Person p=new i=0;i } 输出结果: a bird sleeps on tree System.out.println(\最a fish sleeps in the sea a person sleeps in the bed 大值:\ 基本数组类型组成的数 ascend(item); for(int 组 1. 从键盘输入10个整数,i=0;i (1) 编写一个方法能够 System.out.println(ite 实现数组的逆序:将m[i]); 前5个元素与后5个 } 元素对换,即将第一 个元素与第十个元 } 素呼唤,将第二个元 public static void 素与第九个元素互reverse(int a[]) { 换,依次类推。 for(int i=0;i<5;i++) (2) 编写一个方法能够 { 返回该数组中元素 int temp=a[i]; 的最大值 a[i]=a[9-i]; 编写一个方法实现对数组 a[9-i]=temp; 元素的升序排列 } } ArrayTest.java public static int getMax(int a[]) { int max=a[0]; for(int i=1;i if(a[i]>max) max=a[i]; } return max; } public static void ascend(int a[]) { for(int i=0;i for(int j=i;j if(a[i]>a[j]) { int temp=a[j]; a[j]=a[i]; a[i]=temp; } } } } } 输出结果: java ArrayTest 85 54 25 24 14 2 36 21 5 84 84 5 21 36 2 14 24 25 54 85 最大值:85 2 this.price=price; 5 } 14 21 public String 24 getName() 25 { 36 return name; 54 } 84 public float getPrice() 85 { 引用数据类型组成的数组 return price; } (1) 定义Student类,类的} 属性包括学号、姓名、class ShoppingCar { 语文成绩、英语成绩、 private 数学成绩。方法包括设ArrayList (2) 在测试类中定义一个ArrayList 能够包含5个学生对 } void 象的数组,创建5个 public addGoods(Goods goods) Student类的对象,将 { 它们放入数组中。 list.add(goods); (3) 遍历数组,输出每个学 } 生的姓名和他对应的 public void removeGoods(String 总分。 name) 实验:商品类 { Test4.java Iterator it=list.iterator(); java.util.ArrayList; import java.util.Iterator; while(it.hasNext()) class Goods { { private String name; Goods goods=it.next(); private float price; public void if(goods.getName().equsetName(String name) als(name)) { this.name=name; { } public void list.remove(goods); break; setPrice(float price) } { } } public float getPrice() { float price=0.0f; Iterator while(it.hasNext()) { Goods goods=it.next(); price+=goods.getPrice(); } return price; } } public class Test4 { public static void main(String args[]) { Goods goods1=new Goods(); goods1.setName(\可乐\ goods1.setPrice(2.5f); Goods goods2=new Goods(); goods2.setName(\方便面\ goods2.setPrice(10.0f); ShoppingCar car=new ShoppingCar(); car.addGoods(goods1); car.addGoods(goods2); System.out.println(car.销售的总金额 对象中,然后调用公司对getPrice()); 方法 象的输出所有员工工资和 1. 设置销售的总金额 的方法,查看该公司该月 car.removeGoods(\ 2. 重写计算工资方法: 应该发的工资总和。 F方便面\ 基本工资+提成。 要求:将包的概念引入到 本程序中,要求一个源文System.out.println(car.get提成的计算: 当销售额再10000 以下件中只定义一个类,请合Price()); 时,则提成10%, 理的将不同的类组织在包 } } 等销售额再10000-100000当中。 输出结果: 之间是,则提成15%。 例如:公司类可以放在12.5 再 100000以上是,提成com.company这个包中。 2.5 18%。 抽象员工类可以放1)制作一个销售首饰的公5)子类: 普通员工类 在com.employee这个包司类。 属性: 中。 属性: 工作的小时 对于ArrayList或Vector一个保存员工的集合对象方法: 这两个类的用法不熟悉的(ArrayList和Vector都可1. 设置工作的小时 同学,请参考API文档。以)。 2. 重写计算工资的方法: 要求ArrayList或Vector方法: 当每月工作的小时数超过启用泛型机制 1:添加一个员工。 196 小时时,超出的部分本程序较综合的考察同学2:通过员工的名字来删除按每小时200 元。 基本工们面向对象编程的基本概员工。 资+(工作的小时-196)念,包括包的定义与引入、3:通过员工的名字来显示*200。 类、继承、抽象类、接口、员工的工资。 6)定义一个测试类,在 泛型等概念。请仔细阅读4:输出所有员工的工资main方法中生成 题目要求,尽量在4课时和。 一个公司对象; 类完成,分别做成抽象类2)定义一个抽象员工类 一个小时工的对象,每小和接口两个版本。 属性: 姓名,基本工资 时工资10,工作200 小时; Company.java 抽象方法:计算工资。 一个小时工的对象,每小/*1)制作一个销售首饰的3)子类:小时工类 时工资10,工作 230小时; 公司类。 属性: 一个销售员工的对象,基属性: 工作的小时,每小时工资。 本工资1000,销售额5000; 一个保存员工的集合对象方法: 一个销售员工的对象,基(ArrayList和Vector都可1. 设置工作的小时 本工资1000,销售额以)。 2. 设置每小时的工资。 200000; 方法: 3. 重写计算工资方法: 一个普通员工对象,基本1:添加一个员工。 小时工没有基本工资,他工资1200,工作小时205 2:通过员工的名字来删除的工资就是工作的小时*小时。 员工。 每小时工资。 通过员工的名字来显示(注:员工的姓名可自行3:4)子类:销售员工类 员工的工资。 拟定。) 属性: 将以上员工对象加入公司4:输出所有员工的工资