本文目录一览:
- JAVA程序设计多选题---下面哪个不是Java中的容器( ))
- Java程序设计,急求答案.
- java程序设计题
- java语言程序设计课后答案 郞波 第二版 清华大学出版社
- java程序设计上机题,求答案
JAVA程序设计多选题---下面哪个不是Java中的容器( )
ScrollPane
是 Java Swing 中的滚动面板Canvas
是 HTML5 中的画图Scrollbar
是 Java Swing 中的滚动条上的Applet
是 Java 小应用程序Dialog
是弹窗
综上所述:- 若容器是指数据结构中的容器,则选
a b c d e
- 若容器是指可以容纳其他组件的容器,则选
a e
Java程序设计,急求答案.
注释就不写了,将就着看吧。AWT/Swing 的题目就算了,懒得写,很少用。
1. 声明一个类 Person
import java.text.SimpleDateFormat;
import java.util.Date;
class Person {
public Person(String name, Date birthday, boolean isMale) {
this.name = name;
this.birthday = birthday;
this.isMale = isMale;
}
private String name;
private Date birthday;
private boolean isMale;
public void showName() {
System.out.println("姓名:" + name);
}
public void showBirthday() {
System.out.println("出生年月日:" + new SimpleDateFormat("yyyy年MM月dd日").format(birthday));
}
public void showSex() {
System.out.print("性别:");
if (isMale) {
System.out.println("男");
} else {
System.out.println("女");
}
}
}
2. 声明一个接口,将一个人的出生年份转换成年龄
public interface DateUtil {
public int DateToAge();
}
3. 在类 Shapearea 中声明三个同名方法求圆、矩形和三角形的面积
public class Shapearea {
static final double PI = 3.1415926;
public static double getArea(double r) {
return r * r * PI;
}
public static double getArea(double x, double y) {
return x * y;
}
public static double getArea(double a, double b, double c) {
double l = a + b + c;
return Math.sqrt(l * (l - c) * (l - b) * (l - a));
}
}
4. 已知某一角度的值,求它的正弦值
Math.sin(a);
5. 由键盘输入两个字符串“10”和“20”,将他们转换成整数,然后计算并输出这两个数的和
Scanner sc = new Scanner(System.in);
String str1 = sc.next();
String str2 = sc.next();
Integer int1 = new Integer(str1);
Integer int2 = new Integer(str2);
System.out.println("结果是:" + int1 + int2);
6. 绘图
7. 绘制一圆角矩形、实心普通矩形,分别使用不同的颜色
8. 绘制一多边形(至少4个顶点)和一空心弧线(长度和角度自定)。颜色自定
9. 绘制一折线(至少六个顶点)和一正方形。颜色自定
10. 创建一个 String 类的对象 Str1 和 Str2,判断 Str2 是否 Str1 的子串。如果是,输出 Str1 中在子串 Str2 后的字符串
Scanner sc = new Scanner(System.in);
String str1 = sc.next();
String str2 = sc.next();
if (str1.contains(str2)) {
System.out.println(str1.split(str2, 2)[1]);
}
11. 声明一个矩形类 Rectangle,其中有多个构造方法。用不同的构造方法创建对象,并输出矩形的周长和面积
12. 完成一小应用程序,实现用 CardLayout 布局摆放三个按钮(每张卡片上一个按钮,点击按钮换卡片)
java程序设计题
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
BufferedOutputStream out = null;
try {
out = new BufferedOutputStream(new FileOutputStream(new File("d:/info.txt")));
String line = "第一行文本\n第二行文本";
out.write(line.getBytes());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
BufferedInputStream in = null;
try {
in = new BufferedInputStream(new FileInputStream("d:/info.txt"));
StringBuffer buffer = new StringBuffer();
byte[] buff = new byte[in.available()];
while (in.read(buff) != -1) {
buffer.append(new String(buff));
}
System.out.println(buffer);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
in = null;
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
java语言程序设计课后答案 郞波 第二版 清华大学出版社
我有:
- Java 面向对象程序设计
- 清华大学出版社
- (编著 耿祥义 张跃平)
- 习题解答
建议使用文档结构图(选择 Word 菜单 → 视图 → 文档结构图)
习题1
- James Gosling
-
- 使用一个文本编辑器编写源文件。
- 使用 Java 编译器(javac.exe)编译 Java 源程序,得到字节码文件。
- 使用 Java 解释器(java.exe)运行 Java 程序
- Java 的源文件是由若干个书写形式互相独立的类组成的。应用程序中可以没有 public 类,若有的话至多可以有一个 public 类。
- 系统环境 path D\jdk\bin;
系统环境 classpath D\jdk\jre\lib\rt.jar;. - B
- Java 源文件的扩展名是
.java
。Java 字节码的扩展名是.class
。 - D
-
- (1) Speak.java
- (2) 生成两个字节码文件,这些字节码文件的名字 Speak.class 和 Xiti8.class
- (3) java Xiti8
- (4) 执行 java Speak 的错误提示
执行 java xiti8 得到的错误提示Exception in thread "main" java.lang.NoSuchMethodError: main
执行 java Xiti8.class 得到的错误提示Exception in thread "main" java.lang.NoClassDefFoundError: xiti8 (wrong name: Xiti8)
执行 java Xiti8 得到的输出结果Exception in thread "main" java.lang.NoClassDefFoundError: Xiti8/class
I'm glad to meet you
- 属于操作题,解答略。
习题2
- D
- 【代码1】 【代码2】 错误 //【代码3】更正为
float z=6.89F;
- float 型常量后面必须要有后缀 “f” 或 “F”。对于 double 常量,后面可以有后缀 “d” 或 “D”,但允许省略该后缀。
public class Xiti4 {
public static void main(String args[]) {
char ch1 = '你', ch2 = '我', ch3 = '他';
System.out.println("\"" + ch1 + "\"的位置:" + (int) ch1);
System.out.println("\"" + ch2 + "\"的位置:" + (int) ch2);
System.out.println("\"" + ch3 + "\"的位置:" + (int) ch3);
}
}
- 数组名字.length
- 数组名字.length
- 【代码1】A,65
【代码2】-127
【代码3】123456.783,123456.78312 - 【代码1】false
【代码2】true
【代码3】false
【代码4】3
【代码5】4.4
【代码6】8.8
习题3
输出 110
if-else 语句书写的不够规范,复合语句缺少大括号 {}
,代码不够清晰。
2. 你好好酷!!
3.
public class Xiti3_3 {
public static void main(String args[]) {
int startPosition = 0, endPosition = 0;
char cStart = 'а', cEnd = 'я';
startPosition = (int) cStart;
endPosition = (int) cEnd;
System.out.println("俄文字母表:");
for (int i = startPosition; i <= endPosition; i++) {
char c = '\0';
c = (char) i;
System.out.print(" " + c);
if ((i - startPosition + 1) % 10 == 0)
System.out.println("");
}
}
}
public class Xiti4 {
public static void main(String args[]) {
double sum = 0, a = 1;
int i = 1;
while (i <= 20) {
sum = sum + a;
i++;
a = a * i;
}
System.out.println("sum=" + sum);
}
}
class Xiti5 {
public static void main(String args[]) {
int i, j;
for (j = 2; j <= 100; j++) {
for (i = 2; i <= j / 2; i++) {
if (j % i == 0)
break;
}
if (i > j / 2) {
System.out.print(" " + j);
}
}
}
}
class Xiti6 {
public static void main(String args[]) {
double sum = 0, a = 1, i = 1;
while (i <= 20) {
sum = sum + a;
i++;
a = (1.0 / i) * a;
}
System.out.println("使用 while 循环计算的 sum=" + sum);
for (sum = 0, i = 1, a = 1; i <= 20; i++) {
a = a * (1.0 / i);
sum = sum + a;
}
System.out.println("使用 for 循环计算的 sum=" + sum);
}
}
public class Xiti7 {
public static void main(String args[]) {
int sum = 0, i, j;
for (i = 1; i <= 1000; i++) {
for (j = 1, sum = 0; j < i; j++) {
if (i % j == 0)
sum = sum + j;
}
if (sum == i)
System.out.println("完数:" + i);
}
}
}
- 方法之一
import java.util.Scanner;
public class Xiti8 {
public static void main(String args[]) {
System.out.println("请输入两个非零正整数,每输入一个数回车确认");
Scanner reader = new Scanner(System.in);
int m = 0, n = 0, temp = 0, gy = 0, gb = 0, a, b;
a = m = reader.nextInt();
b = n = reader.nextInt();
if (m < n) {
temp = m;
m = n;
n = temp;
}
int r = m % n;
while (r != 0) {
n = m;
m = r;
r = m % n;
}
gy = n;
gb = a * b / gy;
System.out.println("最大公约数 :" + gy);
System.out.println("最小公倍数 :" + gb);
}
}
- 方法之二
import java.util.Scanner;
public class Xiti8 {
public static void main(String args[]) {
System.out.println("请输入两个非零正整数,每输入一个数回车确认");
Scanner reader = new Scanner(System.in);
int m = 0, n = 0, t = 0, gy = 0, gb = 0;
m = reader.nextInt();
n = reader.nextInt();
if (m < n) {
t = m;
m = n;
n = t;
}
for (int i = 1; i <= m; i++) {
if (m % i == 0 && n % i == 0) {
gy = i;
}
}
gb = m * n / gy;
System.out.println(m + "," + n + "的最大公约数为 " + gy);
System.out.println(m + "," + n + "的最小公倍数为 " + gb);
}
}
public class Xiti9 {
public static void main(String args[]) {
int n = 1;
long sum = 0, t = 1;
t = n * t;
while (true) {
sum = sum + t;
if (sum > 9999)
break;
n++;
t = n * t;
}
System.out.println("满足条件的最大整数:" + (n - 1));
}
}
习题4
- 用该类创建对象时。
- 所谓方法重载是在一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。构造方法可以重载。
- 可以。不可以。
- 不可以。
- 成员变量又分为实例变量和类变量,用
static
修饰的变量是类变量。那么类变量和实例变量有什么区别呢?一个类通过使用new
运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间;如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。也就是说对象共享类变量。 - C,D
- 【代码1】,【代码4】
- sum = -100
- 27
- **20
##100
习题5
- 如果子类和父类在同一个包中,那么子类自然地继承了其父类中不是 private 的成员变量作为自己的成员变量,并且也自然地继承了父类中不是 private 的方法作为自己的方法。继承的成员或方法的访问权限保持不变。如果子类和父类不在同一个包中,那么子类继承了父类的 protected、public 成员变量做为自己的成员变量,并且继承了父类的 protected、public 方法为子类的方法,继承的成员或方法的访问权限保持不变。如果子类和父类不在同一个包里,子类不能继承父类的友好变量和友好方法。
只要子类中声明的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量。
子类中定义一个方法,这个方法的类型和父类的方法的类型一致或者是父类的方法的类型的子类型,并且这个方法的名字、参数个数、参数的类型和父类的方法完全相同,子类如此定义的方法称作子类重写的方法。子类通过方法的重写可以隐藏继承的方法。 - 不可以。
- abstract 类。
- 假设 B 类是 A 类子类或间接子类,当我们用子类 B 创建一个对象,并把这个对象的引用放到 A 类的对象中时,称这个 A 类对象是子类对象的上转型对象。
- 可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法。
- A,C,D
- 15.0
- 8.0
class A {
public final void f() {
char cStart = 'a', cEnd = 'z';
for (char c = cStart; c <= cEnd; c++) {
System.out.print(" " + c);
}
}
}
class B extends A {
public void g() {
char cStart = 'α', cEnd = 'ω';
for (char c = cStart; c <= cEnd; c++) {
System.out.print(" " + c);
}
}
}
public class Xiti9 {
public static void main(String args[]) {
B b = new B();
b.f();
b.g();
}
}
class A {
public int f(int a, int b) {
if (b < a) {
int temp = 0;
temp = a;
a = b;
b = temp;
}
int r = b % a;
while (r != 0) {
b = a;
a = r;
r = b % a;
}
return a;
}
}
class B extends A {
public int f(int a, int b) {
int division = super.f(a, b);
return (a * b) / division;
}
}
public class Xiti10 {
public static void main(String args[]) {
A a = new A();
B b = new B();
System.out.println("最大公约数 :" + a.f(36, 24));
System.out.println("最小公倍数 :" + b.f(36, 24));
}
}
习题6
- 仍然有效。
- 可以。
- 不可以。
- 大家好,祝工作顺利!
- 96
乘数超过 99
习题7
-
- (1) Strategy 是接口。
- (2) Army 不是抽象类。
- (3) Army 和 Strategy 是关联关系。
- (4) StrategyA, StrategyB、StrategyC 与 Strategy 是实现关系。
- 例子 13 的设计符合开-闭原则。
- 例子 17 的设计符合开-闭原则。
习题8
采用新增的策略为选手计算得分。增加新的具体策略 StrategyFour。StrategyFour 类将 double computeScore(double [] a)
方法实现为去掉数组 a 的元素中的一个最大值和一个最小值,然后计算剩余元素的几何平均值。
import java.util.Arrays;
public class StrategyFour implements ComputableStrategy {
public double computeScore(double[] a) {
if (a.length <= 2)
return 0;
double score = 0, multi = 1;
Arrays.sort(a);
int n = a.length - 2;
for (int i = 1; i < a.length - 1; i++) {
multi = multi * a[i];
}
score = Math.pow(multi, 1.0 / n);
return score;
}
}
-
- (1) 策略(Strategy)PrintCharacter.java
public interface PrintCharacter { public abstract void printTable(char[] a, char[] b); }
- (2) 具体策略
public class PrintStrategyOne implements PrintCharacter { public void printTable(char[] a, char[] b) { for (int i = 0; i < a.length; i++) { System.out.print(a[i] + ","); } for (int i = 0; i < b.length; i++) { System.out.print(b[i] + ","); } System.out.println(""); } }
public class PrintStrategyTwo implements PrintCharacter { public void printTable(char[] a, char[] b) { for (int i = 0; i < a.length; i++) { System.out.print(b[i] + "," + a[i] + ","); } } }
- (3) 上下文 PrintGame.java
public class PrintGame { PrintCharacter strategy; public void setStrategy(PrintCharacter strategy) { this.strategy = strategy; } public void getPersonScore(char[] a, char[] b) { if (strategy == null) System.out.println("sorry!"); else strategy.printTable(a, b); } }
应用以上策略:
public class Application {
public static void main(String args[]) {
char[] a = new char[26];
char[] b = new char[26];
for (int i = 0; i <= 25; i++) {
a[i] = (char) ('a' + i);
}
for (int i = 0; i <= 25; i++) {
b[i] = (char) ('A' + i);
}
PrintGame game = new PrintGame(); // 上下文对象
game.setStrategy(new PrintStrategyOne()); // 上下文对象使用策略一
System.out.println("方案1:");
game.getPersonScore(a, b);
game.setStrategy(new PrintStrategyTwo()); // 上下文对象使用策略二
System.out.println("方案2:");
game.getPersonScore(a, b);
}
}
- 参照本章 8.3.3 自主完成。
习题9
- A,B,D
- Love:Game
- 13
abc 夏日 - 13579
- 9javaHello
public class Xiti6 {
public static void main(String args[]) {
String s1, s2, s3, t1 = "ABCDabcd";
System.out.println("字符串原来是这个样子: " + t1);
s1 = t1.toUpperCase();
System.out.println("字符串中的小写字母变成大写是这个样子: " + s1);
s2 = t1.toLowerCase();
System.out.println("字符串中的大写字母变成小写是这个样子: " + s2);
s3 = s1.concat(s2);
System.out.println("大写字符串连接小写字符串是这个样子: " + s3);
}
}
class Xiti7 {
public static void main(String args[]) {
String s = "中华人民共和国";
char a = s.charAt(0);
char b = s.charAt(6);
System.out.println("第一个字符: " + a);
System.out.println("最后一个字符: " + b);
}
}
import java.util.*;
class Xiti8 {
public static void main(String args[]) {
int year, month;
System.out.println("请输入年份和月份,每输入一个数回车确认");
Scanner reader = new Scanner(System.in);
year = reader.nextInt();
month = reader.nextInt();
String[] day = new String[42];
System.out.println(" 日 一 二 三 四 五 六");
Calendar rili = Calendar.getInstance();
rili.set(year, month - 1, 1); // 将日历翻到 year 年 month 月 1 日, 注意 0 表示一月...11 表示十二月
int 星期几 = rili.get(Calendar.DAY_OF_WEEK) - 1;
int dayAmount = 0;
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
dayAmount = 31;
if (month == 4 || month == 6 || month == 9 || month == 11)
dayAmount = 30;
if (month == 2)
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
dayAmount = 29;
else
dayAmount = 28;
for (int i = 0; i < 星期几; i++)
day[i] = "";
for (int i = 星期几, n = 1; i < 星期几 + dayAmount; i++) {
if (n <= 9)
day[i] = String.valueOf(n) + " ";
else
day[i] = String.valueOf(n);
n++;
}
for (int i = 星期几 + dayAmount; i < 42; i++)
day[i] = "";
for (int i = 0; i < 星期几; i++) {
day[i] = "**";
}
for (int i = 0; i < day.length; i++) {
if (i % 7 == 0) {
System.out.println("");
}
System.out.print(" " + day[i]);
}
}
}
import java.util.*;
class Xiti9 {
public static void main(String args[]) {
int year1, month1, day1, year2, month2, day2;
Scanner reader = new Scanner(System.in);
System.out.println("请输入第一个日期的年份 月份 日期 ,每输入一个数回车确认");
year1 = reader.nextInt();
month1 = reader.nextInt();
day1 = reader.nextInt();
System.out.println("请输入第二个日期的年份 月份 日期 ,每输入一个数回车确认");
year2 = reader.nextInt();
month2 = reader.nextInt();
day2 = reader.nextInt();
Calendar calendar = Calendar.getInstance();
calendar.set(year1, month1, day1);
long timeYear1 = calendar.getTimeInMillis();
calendar.set(year2, month2, day2);
long timeYear2 = calendar.getTimeInMillis();
long 相隔天数 = Math.abs((timeYear1 - timeYear2) / (1000 * 60 * 60 * 24));
System.out.println("" + year1 + "年" + month1 + "月" + day1 + "日和" +
year2 + "年" + month2 + "月" + day2 + "日相隔" + 相隔天数 + "天");
}
}
全部都给你,希望那个可以帮助到你,祝你学习成功!
java程序设计上机题,求答案
public class Point {
int x;
int y;
public Point() {
}
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public Point(int x) {
this.x = x;
this.y = x;
}
public double distance() { // 求当前点到原点的距离
return Math.sqrt((x * x + y * y));
}
public double distance(int x1, int y1) { // 求当前点到(x1,y1)的距离
return Math.sqrt((x - x1) * (x - x1) + (y - y1) * (y - y1));
}
public double distance(Point other) {
int x2 = other.x;
int y2 = other.y;
return Math.sqrt((x - x2) * (x - x2) + (y - y2) * (y - y2));
}
}