Java自学的经典题型总结

Java自学的经典题型总结

经典题型

1.Hello Word

2.嵌套循环问题

3.定义一个类求圆的面积和周长

4.计算两点间的距离

5.定义一个类并打印其姓名和年龄

6.构造与重载定义个人信息

7.十进制对二进制八进制十六进制的转换

8.随机生成问题

9.数组的使用

Hello Word

  • 程序猿的第一个程序
1
2
3
4
5
public class HelloWord {
public static void main(String[] args) {
System.out.println("Hello Word!!");
}
}

嵌套循环问题

  • 生成一个九九乘法表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package 循环for嵌套;

public class ForFor {
public static void main(String[] arge) {
int sum = 0;
for(int i = 1 ;i <= 9 ;i++) {
for(int j = 1;j <= i ;j++) {
sum = i * j;
System.out.print(i + "*" + j + "=" + sum + "\t");
}
System.out.println();
}
}
}

定义一个圆类Circle

  • 定义一个圆类——Circle.
  • 在类的内部提供一个属性:半径(r).
  • 同时 提供 两个 方法 : 计算 面积 (getArea()) 和 计算 周长(getPerimeter()) 。
  • 通过两个方法计算圆的周长和面积并且对计算结果进行输出。
  • 最后定义一个测试类对 Circle 类进行使用。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package 编码题2;

import java.util.Scanner;

/**
* 定义一个圆类——Circle.
* 在类的内部提供一个属性:半径(r).
* 同时 提供 两个 方法 : 计算 面积 (getArea()) 和 计算 周长(getPerimeter()) 。
* 通过两个方法计算圆的周长和面积并且对计算结果进行输出。
* 最后定义一个测试类对 Circle 类进行使用。
* @author pc-mac
*
*/
public class Circle {
double r;

public static void main(String[] args) {
Circle n1 = new Circle();

System.out.println("###请输入圆的半径###");
Scanner n = new Scanner(System.in);
int rString = n.nextInt();

n1.getArea(rString);
n1.getPerimeter(rString);
}

public void getArea(double r) {
this.r = r;

System.out.println("面积是:" + Math.PI*r*r);
}

public void getPerimeter(double r) {
this.r = r;

System.out.println("周长是:" + Math.PI*r*2);
}
}

计算两点之间的距离

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package 方法的构造;

public class TestConstructor {
public static void main(String[] args) {
point p = new point(3.0,4.0);
point p2 = new point(6.0,8.0);
point or = new point(0,0);

System.out.println(p.getDistance(or));
System.out.println(p2.getDistance(or));
}
}

class point{

//构造函数
public point (double _x,double _y){
x = _x;
y = _y;
}

//属性
double x,y;

//方法
public double getDistance(point p) {
return(Math.sqrt((x-p.x)*(x-p.x)+(y-p.x)*(y-p.y)));
}
}
  • 此方法要注意的是在public double getDistance(point p)的方法中,传入的是point对象的值,所以在定义的时候直接定义了三个p;p2;or目的是方便调用

定义一个类并打印其姓名和年龄

  • 编写 Java 程序,用于显示人的姓名和年龄。
  • 定义一个人类Person。
  • 该类中应该有两个私有属性: 姓名 (name) 和年龄 (age) 。
  • 定义构造方法用来初始化数据成员。
  • 再定义显示(display()) 方法将姓名和年龄打印出来。
  • 在 main 方法中创建人类的实例然后将信息显示。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package 编码题1;
/**
* 编写 Java 程序,用于显示人的姓名和年龄。
* 定义一个人类Person。
* 该类中应该有两个私有属性: 姓名 (name) 和年龄 (age) 。
* 定义构造方法用来初始化数据成员。
* 再定义显示(display()) 方法将姓名和年龄打印出来。
* 在 main 方法中创建人类的实例然后将信息显示。
* @author pc-mac
*
*/
public class Person {
private String name;
private int age;

public static void main(String[] args) {
Person n1 = new Person("零分",20);
n1.disPlay();
}


public Person(String name,int age) {
this.name = name;
this.age = age;
}

public void disPlay() {
System.out.println(name);
System.out.println(age);
}
}

构造与重载定义个人信息

  • 构造方法与重载:
    • 定义一个网络用户类,信息有用户 ID、用户密码、 email 地址。
    • 在建立类的实例时把以上三个信息都作为构造函数的参数输入。
    • 其中用户 ID 和用户密码时必须缺省时,email地址是用户 ID 加上字符串”@qq.com”。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package 编码题3;
/**
* 构造方法与重载:
* 定义一个网络用户类,信息有用户 ID、用户密码、 email 地址。
* 在建立类的实例时把以上三个信息都作为构造函数的参数输入。
* 其中用户 ID 和用户密码时必须缺省时,email地址是用户 ID 加上字符串"@qq.com"。
* @author pc-mac
*
*/
public class User {
public static void main(String[] args) {
// NetUser n1 = new NetUser(1001,"123654");//不能这么写
NetUser n1 = new NetUser();
n1.id = 1001;
n1.pwd = "123456";
NetUser n2 = new NetUser(1003, "654321", "952339610@qq.com");
NetUser n3 = new NetUser(1002, "654789");

n1.disPlay();
n3.disPlay();
System.out.printf("用户为:%d的密码是:%s,邮箱是:%s\n",n2.id,n2.pwd,n2.email);
}
}

class People{
int id;
String pwd;
}

class NetUser extends People{
String email;

public NetUser(int id,String pwd) {
this.id = id;
this.pwd = pwd;
this.email = id + "@qq.com";

}

public NetUser(int id,String pwd,String email) {
this.id = id;
this.pwd = pwd;
this.email = email;

}

public NetUser() {
}

public void disPlay() {
System.out.println("用户名:" + id + "密码是:" + "邮箱是:" + email);
}
}

进制转换

  • 十进制转换
    • 转换成二进制
    • 转换成八进制
    • 转换成十六进制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package 编码题4;

import java.util.Scanner;

/**
* 十进制转换
* 转换成二进制
* 转换成八进制
* 转换成十六进制
* @author pc-mac
*
*/

public class TestSwap {
public static void main(String[] args) {
System.out.println("请输入一个数进行转换:");
Scanner nScanner = new Scanner(System.in);

Swap nSwap = new Swap();
int x = nScanner.nextInt();

nSwap.two(x);
nSwap.eight(x);
nSwap.tensix(x);
}
}

class Swap{
int n;

public void two(int n) {
this.n = n;
int k = 1,sum = 0,y;

while (n != 0) {
y = n % 2;
n = n / 2;
sum += y*k;
k *= 10;
}
System.out.println(sum);
}

public void eight(int n) {
this.n = n;
int k = 1,sum = 0,y;

while (n != 0) {
y = n % 8;
n = n / 8;
sum += y*k;
k *= 10;
}
System.out.println(sum);
}

public void tensix(int n) {
this.n = n;
int i = 0,k;
int[] a = new int[10];
char count[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

while(n != 0){
a[i++] = n % 16;
n = n / 16;
}
for (int j = a.length-1 ; j >= 0 ; j--) {
k = a[j];
System.out.printf("%c",count[k]);
}
}
}

随机生成月份

  • 随机生成月份和字母并且判断是不是原因字母
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class Switch {
public static void main(String[] arge) {
int month = (int)(1+12*Math.random());
System.out.println(month);
switch (month) {
case 1:
System.out.println("一月份");
break;
case 2:
System.out.println("二月份");
break;
case 3:
System.out.println("三月份");
break;
case 4:
System.out.println("四月份");
break;
case 5:
System.out.println("五月份");
break;
case 6:
System.out.println("六月份");
break;
default:
System.out.println("不是一二三四五六月份");
break;
}
System.out.println("*************");
char a = 'a';
int rand = (int) (25*Math.random());
char a1 = (char) (a + rand);
System.out.print(a1 + ":");
switch (a1) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
System.out.println("这是元音字母!");
break;
default:
System.out.println("这不是元音字母!");
break;
}
}
}

数组的使用

  • 创建一个类包括ID 和 Name
  • 利用数组建立三个对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package 数组的使用;

public class Arrary {
public static void main(String[] args) {
int[] arr1 = new int[10];
String[] arr2 = new String[10];

for (int i = 0; i < arr1.length; i++) {//在这里 arr1.length == 10
arr1[i] = 10*i;
}

for (int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i]);
}

User[] arr3 = new User[10];
arr3[0] = new User(1001, "零分");
arr3[1] = new User(1002, "满分");
arr3[2] = new User(1003, "没分");

for (int i = 0; i < arr3.length; i++) {
System.out.println(arr3[i].getName());
}
}
}

class User{
public User(int id,String name) {
this.id = id;
this.name = name;
}

private int id;
private String name;

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

}
TheMrxk个人博客 wechat
欢迎您扫一扫上面的本人微信号,获取更多资源!