第一章
使用记事本编写一个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;
else
return 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.java
public 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.java
public 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.java
public 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.java
public interface Shape {
double area(double value);
}
//Square.java
public class Square implements Shape{
@Override
public double area(double value) {
return value*value;
}
}
//Circle.java
public class Circle implements Shape{
@Override
public 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.java
import 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);
}
}
}
更多推荐
JAVA基础入门学习编程
发布评论