第一章
使用记事本编写一个HelloWorld程序,并在命令行窗口编译运行,并打印输出结果。
public class HelloWorld {public static void main(String[] args) {System.out.println("Hello World!!");}
}

第二章
1、请编写程序,实现“1+3+5+...+99”的值。要求如下:
(1)使用循环语句实现自然数1-99的遍历。
(2)在遍历过程中,通过条件判断当前遍历的数是否为奇数,如果是就累加,否则就不加。
public class Example {public static void main(String[] args) {int sum=0;for(int i=1;i<100;i++) {if(i%2==1) {sum+=i;}}System.out.println(sum);}
}

2、请使用冒泡排序算法编写程序,实现对数组{25,24,12,76,101,96,28}的排序。
public class Example {public static void main(String[] args) {int[] a= {25,24,12,76,101,96,28};for(int i=0;i<a.length;i++) {System.out.print(a[i]+" ");}System.out.println();for(int i=1;i<a.length;i++) {for(int j=0;j<a.length-1-i;j++) {if(a[j]>a[j+1]) {int temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}for(int i=0;i<a.length;i++) {System.out.print(a[i]+" ");}}
}

第三章 面向对象(上)
1、请按照以下要求设计一个学生类Student,并进行测试。要求如下:
(1)Student类中包含姓名、成绩两个属性。
(2)分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值。
(3)Student类中定义一个无参的构造方法和一个接收两个参数的构造方法,两个参数分别为姓名和成绩属性赋值。
(4)在测试类中创建两个Student对象,一个使用无参的构造方法,然后调用方法给姓名和成绩赋值,另一个使用有参的构造方法,在构造方法中给姓名和成绩赋值。
Student类
public class Student {String name;double score;public String getName() {return name;}public void setName(String name) {this.name=name;}public double getScore() {return score;}public void setScore(double score) {this.score=score;}public Student() {name="小明";score=98;System.out.println("我叫"+name+"我考了"+score+"分");}public Student(String n,double s) {name=n;score=s;System.out.println("我叫"+name+"我考了"+score+"分");}
}
测试类
public class Example {public static void main(String[] args) {double score;Student s1=new Student();Student s2=new Student();s1.Student();s2.Student("小王", 80.5);}
}

2、定义一个这样的数列:0,1,1,2,3,5,......(斐波那契数列)。要求如下:
使用递归方法获得第n个数的数值。
import java.util.*;
public class Example {public static void main(String[] args) {int a=0,sum=0;Scanner sc=new Scanner(System.in);int n=sc.nextInt();if(n==1)System.out.println(0);for(int i=2;i<=n;i++) {sum=F(i);}System.out.println(sum);}public static int F(int n){if(n==2||n==3)return 1;elsereturn F(n-2)+F(n-1);}
}

第四章 面向对象(下)
1、设计一个学生类Student和它的一个子类Undergraduate。要求如下:
(1)Student类有name和age属性,一个包含两个参数的构造方法,用于给name和age赋值,前两个参数用于给继承的name和age属性赋值,一个show()方法用于打印Student的属性信息。
(2)本科生类Undergraduate增加一个degree(学位)属性。有一个包含三个参数的构造方法,前两个参数用于给继承的name和age属性赋值,第三个参数给degree专业赋值,一个show()方法用于打印Undergraduate的属性信息。
(3)在测试类中分别创建Student对象和Undergraduate对象,调用他们的show()。
//Student.javapublic class Student {String name;int age;public Student(String name,int age) {this.name=name;this.age=age;}void show(){System.out.println("我叫"+name+"我"+age+"岁了");}
}//Undergraduate.javapublic class Undergraduate extends Student{String degree;public Undergraduate(String name, int age) {super(name, age);}public Undergraduate(String name, int age,String degree) {super(name, age);this.degree=degree;}void show() {System.out.println("我叫"+name+"我"+age+"岁了!!我获得了"+degree);}
}//Example.javapublic class Example {public static void main(String[] args) {Student s1=new Student("张三", 18);s1.show();Student s2=new Undergraduate("赵四",20,"学士学位");s2.show();}
}

2、设计一个Shape接口和它的两个实现类Square和Circle。要求如下:
(1)Shape接口中有一个抽象方法area(),方法接受有一个double类型的参数,返回一个double类型的结果。
(2)Square和Circle中实现了Shape接口的area()抽象方法,分别求正方形和圆形的面积并返回。
在测试类中创建Square和Circle对象,计算边长为2的正方形面积和半径为3的圆形面积。
//Shape.javapublic interface Shape {double area(double value);
}//Square.javapublic class Square implements Shape{@Overridepublic double area(double value) {return value*value;}}//Circle.javapublic class Circle implements Shape{@Overridepublic double area(double value) {return Math.PI*value*value;}}//测试类
public class Example {public static void main(String[] args) {Square s=new Square();Circle c=new Circle();System.out.println(s.area(2));System.out.println(c.area(3));}
}

第五章
1、编写一个程序,实现字符串大小写的转换并倒序输出,要求如下:
(1)用 for 循环将字符串“HelloWorld”从最后一个字符开始遍历。
(2)遍历的当前字符如果是大写字符,就使用 toLowerCase()方法将其转换为小写字符,反之则使用 toUpperCase() 方法将其转换为大写字符
(3)定义一个 StringBuffer 对象,调用 append()方法依次添加遍历的字符,最后调用 StringBuffer 对 象的 toString()方法,并将得到的结果输出。
public class Example {public static void main(String[] args) {String str = "HelloWorld"; // 字符串转成char数组 char[] ch = str.toCharArray();StringBuffer buffer = new StringBuffer();for (int i=str.length()-1; i>=0; i--) {if ((ch[i]>='A') && (ch[i]<='Z')) {buffer.append(String.valueOf(ch[i]).toLowerCase());} else if ((ch[i]>='a') && (ch[i]<='z')) {buffer.append(String.valueOf(ch[i]).toUpperCase());}}System.out.println(buffer.toString());}
}

2、利用Random类来产生5个20~50之间的随机整数。
提示:[n-m](n、m均为整数,n<m)之间的随机数的公式为n+(new Random()).nextInt(m-n+1)。
import java.util.Random;
public class Example {public static void main(String[] args) {Random rand = new Random();int[] num = new int[5];for (int i = 0; i < num.length; i++) {num[i] = 20 + rand.nextInt(31);System.out.println(num[i]);}}
}
第六章
1、在HashSet集合中添加三个Person对象,把姓名相同的人当做同一个人,禁止重复添加。要求如下:
Person类中定义name和age属性,重写hashCode()方法和equals()方法,针对Person类的name属性进行比较,如果name相同,hashCode()方法的返回值相同,equals方法返回true。
//Person.javaimport java.util.*;
class Person {private String name;private int age;public Person(String name,int age) {this.name=name;this.age=age;} public String toString() {return name+":"+age;}public int hashCode() {return name.hashCode();}public boolean equals(Object obj) {if(this==obj) {return true;}if(!(obj instanceof Person)) {return false;}Person p=(Person) obj;boolean b=this.name.equals(p.name);return b;}
}//测试类import java.util.*;
public class Example01 {public static void main(String[] args) {HashSet hs=new HashSet();Person p1=new Person("小明",18);Person p2=new Person("小王",19);Person p3=new Person("小王",20);hs.add(p1);hs.add(p2);hs.add(p3);System.out.println(hs);}
}

2、选择合适的Map集合保存5位学院的学号和姓名,然后按学号的自然顺序的倒序将这些键值对一一打印出来。要求如下:
(1)创建TreeMap集合。
(2)使用put()方法将学号(“1”“2”“3”“4”“5”)和姓名(“Lucy”“John”“Smith”“Aimee”“Amanda”)存储到Map中,存的时候可以打乱顺序观察排序后的效果。
(3)使用 map.keySet()获取键的Set集合。
(4)使用Set集合的iterator()方法获得Iterator对象用于迭代键。
(5)使用Map集合的get()方法获取键所对应的值。
import java.util.*;
public class Example01 {public static void main(String[] args) {Map map=new TreeMap();map.put("1","Lucy");map.put("3","Smith");map.put("2","John");map.put("4","Amiee");map.put("5","Amada");System.out.println(map);System.out.println(map.keySet());Set keySet=map.keySet();Iterator iterator=keySet.iterator();while(iterator.hasNext()) {Object key=iterator.next();Object value=map.get(key);System.out.println(key+":"+value);}}
}




















