Java基础编程题目2
1: 写一个 MyPoint 完全封装类,其中含有私有的 int 类型的 x 和 y 属性, 分别用公有的 getX 和 setX、getY 和 setY 方法访问,定义一个 toString 方法用来显示这个对象的 x、y 的值,如显示(1,2) ,最后用 main 方法测试。
2:在 MyPoint 类中增加 equals()、toString()方法,根据命令行参数个数测试:若不传参数,则显示(0,0) ;若传一个参数,则打印(此参数值,0) ;若传两个参数,则打印(第一个参数值,第二个参数值) 。
public class MyPoint { private int x; private int y; public int getX() { return x; } public int getY() { return y; } public void setX(int x) { this.x = x; } public void setY(int y) { this.y = y; } public String toString() { return "(" + x + "," + y + ")"; } public boolean equals(Object obj) { return true; } public String toString(String[] args) { if (args.length == 0) { x = 0; y = 0; } if (args.length == 1) { x = Integer.parseInt(args[0]); y = 0; } if (args.length == 2) { x = Integer.parseInt(args[0]); y = Integer.parseInt(args[1]); } return "(" + x + "," + y + ")"; } public static void main(String[] args) { // TODO Auto-generated method stub MyPoint mp = new MyPoint(); mp.setX(1); mp.setY(2); System.out.println(mp.getX()); System.out.println(mp.getY()); System.out.println(mp.toString()); System.out.println(mp.toString(args)); }}?
3: 有一个序列,首两项为 0,1,以后各项值为前两项值之和。写一个方法来实现求这个序列的和
//方法一:使用for循环求序列的前n项和 public int orderSum1(int a1,int a2,int n){ int s=a1; int temp; for (int i=1;i<n;i++){ s=s+a2; temp=a2; a2=a1+a2; a1=temp; } return s; } //方法二:使用递归求序列的前n项和 public int orderSum2(int a1,int a2,int n){ if (n==1){ return a1; }else{ return a1+orderSum2(a2,a1+a2,n-1); } }?
4:请编写一个方法实现如下功能:将 1 至 7 的数字转换为星期日到星期六的字符串。
public String numberToString(int n) { String s = ""; switch (n) { case 1: s = "Sunday"; break; case 2: s = "Monday"; break; case 3: s = "Tuesday"; break; case 4: s = "Wednesday"; break; case 5: s = "Thursday"; break; case 6: s = "Friday"; break; case 7: s = "Saturday"; } return s; }?
5:请编写一个方法实现如下功能:有任意三个整数 a,b,c,请输出其中最大的
public int getMax(int a, int b, int c) { int max = a > b a : b; max = max > c max : c; return max; }?
6:请编写一个方法实现如下功能:将任意三个整数 a,b,c 按从小到大的顺序输出。
public void printOrder(int a, int b, int c) { int temp; if (a > b) { temp = a; a = b; b = temp; } if (a > c) { temp = a; a = c; c = temp; } if (b > c) { temp = b; b = c; c = temp; } System.out.println("====after Order==="); System.out.println(a + "," + b + "," + c);?
7:请编写一个方法实现如下功能:用程序找出每位数的立方和等于该数本身值的所有的 3 位数。 (水仙花数)
public void daffodilNumber() { for (int i = 100; i <= 999; i++) { int a = i / 100; int b = i % 100 / 10; int c = i % 10; if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == i) { System.out.println(i); } } }?
8:请编写一个方法实现如下功能:计算 1 加到 n ( n>=2 的整数)的总和。
public int getSum(int n) { int sum = 0; for (int i = 1; i <= n; i++) { sum += i; } return sum; }?
9:请编写一个方法实现如下功能:得到一个整数的绝对值。
public class test { public int absolute(int n) { return n >= 0 n : -n; } public static void main(String[] args) { T9 t = new T9(); int n = -90; System.out.println(n + "的绝对值是:" + t.absolute(n)); }}?