第一章

使用记事本编写一个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基础入门学习编程