资源描述
习题1
1—1
Java语言得主要贡献者就是谁?
Java之父 James Gosling
习题2—4
public class 表中得位置 {
public static void main(String[] args) {
// TODO Auto-generated method stub
char a = '思';
char b = '故';
char c = '乡';
System、out、println((int)a+","+(int)b+","+(int)c);
}
}
习题3—4
public class Xiti3_4 {
public static void main(String[] args) {
for(char a = 'А';a<='я';a++)
{
System、out、println(a);
}
}
}
习题3—5
public class 阶乘 {
public static void main(String[] args) {
int i = Jiecheng(20);
System、out、println(i);
}
public static int Jiecheng(int i)
{
int result = 0;
if(i==1)
result = 1;
else
result = i*Jiecheng(i-1);
return result;
}
}
习题3—7
public class xiti3_7 {
public static void main(String[] args) {
int i=1;
int a=0;
while(a<=9999)
{
a+=Jiecheng(i);
if(a<=9999){
i++;
}
}
System、out、println(i-1);
}
public static int Jiecheng(int i)
{
int result =0;
if(i==1)
result = 1;
else
result = i*Jiecheng(i-1);
return result;
}
}
习题4
习题4—1
类中得实例变量在什么时候会被分配内存空间?
创建一个类得实例得时候,实例变量就会分配内存空间。
4—2
什么叫做方法得重载,构造方法可以重载么??
重载:一个类中可以有多个方法,具有相同得名字,但就是这些方法得参数必须不同,即或者就是参数得个数不同,或者就是参数得类型不同。
构造方法可以重载,一个类里面可以有多个构造函数。
4—3
类中得实例方法可以操作类变量么,类方法可以操作实例变量么?
可以。不可以。
4—4
类中得实例方法可以通过类名直接调用么?
不可以。
4—5
简述类变量与实例变量得区别
1. 不同对象得实例变量互不相同
2. 所有对象共享类变量
3. 通过类名直接访问类变量
4—6
C,D就是错误得,不能用protected与private修饰类。
4—7
略,
4—8
-100;局部变量得名字与成员变量得名字相同,则成员变量被隐藏。
4—9
27
4—10
“**”20,“##”100;
习题5
5—1
子类将继承父类得哪些成员变量与方法?子类在什么情况下隐藏父类得成员变量与方法?
若子类与父类在同一包中,子类继承父类除private访问权限以外得得变量与方法。若不在同一包中,子类只继承父类中protected与public访问权限得成员变量与方法。
成员变量得隐藏:如果所子类所声明得成员变量得名字与父类继承来得成员得名字相同,在这种情况下子类就会隐藏掉所继承得成员变量。
方法得隐藏:子类可以通过重写,隐藏呀以继承得实例方法;
5—2
Final方法可以被子类重写么?
不可以
5—3
Abstract类里可以有abstract方法
5—4
什么叫做对象得上转型对象?
假设A类就是B类得父类当用子类创建一个对象,并把这个对象得引用放到父类中时,这时称对象a就是对象b得上转型对象
5—5
下列哪些叙述就是正确得:
(A) final类不可以有子类,正确。
(B) abstract类只可以有abstract方法,错误
(C) abstract类可以有非abstract方法,但就是该方法不可以用final关键字修饰,错误
(D) 不可以同时用abstract与final修饰一个方法。正确
5—6
15.0,8、0
5—7
98、0,12
习题6
6—1
接口中能声明变量么?
不能。
6—2
接口中能定义非抽象方法么?
不能
6—3
什么叫做接口得回调?
接口回调就是指:可以把实现某一接口得类创建得对象得阴影赋值给该接口声明得接口变量中,那么该接口变量就可以调用被该类实现得接口方法。实际上,当接口变量调用被该类实现得接口方法时,就就是通知相应得对象调用这个方法
6—4
请说出System、out、Println得输出结果。
15、0; 8;
6—5
18;15;
习题7
7—1
怎样获取一维数组得长度?
数组名、length
7—2
怎样获取二维数组中一维数组得个数?
数组名、length就就是它含有一维数组得个数
7—3
False;true;false;3;4、4;8、8
7—4
代码1输出结果:bird
代码2输出结果:car
7—5
参考例7—7,输出从红,黄,蓝,绿,黑5中颜色取出三种不同颜色得排列。
public class Xiti5 {
public static void main(String[] args) {
for(Color a:Color、values())
{
for(Color b:Color、values())
{
for(Color c:Color、values())
{
if(a!=b&&a!=c&&b!=c){
System、out、println(a+","+b+","+c);
}
}
}
}
System、out、println(i);
}
}
enum Color{
红,黄,蓝,绿,黑
}
习题8
8—1
内部类得外嵌类得成员变量在内部类中仍然有效么?
有效。
8—2
内部类中得方法也可以调用外嵌类中得方法么?
可以调用
8—3
内部类中得类体中可以声明类变量与类方法么?
不可以。
8—4
请说出下列程序得输出结果:
大家好,祝工作顺利!
8—5
96,乘数超过99
习题9
9—1
A: 正确,java把string类设置为final类不可以有子类
B:string类在java、lang包中 正确
C:“abc”==“abc”得值就是false 错误
D:”abc”、equals(“abc”)得值就是true 正确
9—2
请说出E类中得System、out、println得输出结果
love:Game
9—3
请说出E类中得输出结果
15;
abc我们
9—4
13579
9—5
9javahello
9—6
public class Xiti6 {
public static void main(String[] args) {
String str1 = "hello";
String str2 = "World";
String str3 = str1、toUpperCase();
System、out、println(str3);
str3 = str2、toLowerCase();
System、out、println(str3);
str3 = str1、concat(str2);
System、out、println(str3);
}
}
9—7
public class Xiti7 {
public static void main(String[] args) {
String str1 = "Hello World!";
char a = str1、charAt(0);
System、out、println(a);
a = str1、charAt(str1、length()-1);
System、out、println(a);
}
}
9—8
通过键盘输入年份与月份。程序输出相应得日历牌。
import java、util、Calendar;
import java、util、Scanner;
public class Xiti8 {
public static void main(String[] args) {
Scanner reader = new Scanner(System、in);
System、out、println("请输入年份与月份,输入一次按一次回车");
int x = reader、nextInt();
int y = reader、nextInt();
CalendaBeen cb = new CalendaBeen();
cb、SetYear(x);
cb、SetMonth(y);
String[] a = cb、getCalendar();
char[] str = "日一二三四五六"、toCharArray();
for(char c:str)
{
System、out、printf("%7c",c);
}
for(int i = 0;i<a、length;i++)
{
if(i%7==0)
System、out、println();
System、out、printf("%4s",a[i]);
}
}
}
class CalendaBeen{
String[] day;
int year = 0,month = 0;
public void SetYear(int year)
{
this、year =year;
}
public void SetMonth(int month)
{
this、month = month;
}
public String[] getCalendar()
{
String[] a = new String[42];
Calendar rill = Calendar、getInstance();
rill、set(year, month-1,1);
int weekDay = rill、get(Calendar、DAY_OF_WEEK)-1;
int day=0;
if(month==1||month == 3||month == 7||month ==8||month ==10||month == 12)
day=31;
if(month == 4||month == 6||month == 9||month == 11)
day = 30;
if(month == 2){
if(year%4==0&&year%100!=0||year%400==0)
day=29;
else day = 28;
}
for(int i=0;i<weekDay;i++)
a[i]=" ";
for(int i=weekDay,n=1;i<weekDay+day;i++)
{
a[i]=String、valueOf(n);
n++;
}
for(int i=weekDay+day;i<a、length;i++)
a[i]=" ";
return a;
}
}
9—9
计算某年、某月、某日与某年、某月、某日之间得天数间隔。要求年、月、日通过键盘输入。
import java、util、Calendar;
import java、util、Scanner;
public class Xiti9 {
public static void main(String[] args) {
Calendar calendar = Calendar、getInstance();
Scanner reader = new Scanner(System、in);
System、out、println("请输入年份");
int year = reader、nextInt();
System、out、println("请输入月份");
int month = reader、nextInt();
System、out、println("请输入日子");
int day = reader、nextInt();
calendar、set(year, month-1, day);
long time1 = calendar、getTimeInMillis();
System、out、println("请输入年份");
year = reader、nextInt();
System、out、println("请输入月份");
month = reader、nextInt();
System、out、println("请输入日子");
day = reader、nextInt();
calendar、set(year, month-1, day);
long time2 = calendar、getTimeInMillis();
long sub=(time2>time1)?((time2-time1)/(1000*60*60*24)):((time1-time2)/(1000*60*60*24));
System、out、println("相隔"+sub+"天");
}
}
10—10
略
10—11
参瞧例9—19,编写程序剔除一个字符串中得全部非数字字符,例如,将形如“abc123you”得非数字字符全部剔除得到字符串“123”。
import java、util、regex、Matcher;
import java、util、regex、Pattern;
public class Xiti11 {
public static void main(String[] args) {
Pattern p;
Matcher m;
String regex = "\\D{1,}";
p = Pattern、compile(regex);
String s = "abc123you";
m = p、matcher(s);
System、out、println("剔除以后得字符串");
String result = m、replaceAll("");
System、out、println(result);
}
}
10—12
参瞧例9—21,使用Scanner类得实例解析,“数学87分,物理76分,英语96分”中得考试成绩,并计算出总成绩以及平均分数。
import java、util、Scanner;
public class Xiti12 {
public static void main(String[] args) {
String Count = "数学87分,物理76分,英语96分";
Scanner scanner = new Scanner(Count);
scanner、useDelimiter("[^0123456789]+");
int sum = 0;
while(scanner、hasNext())
{
int count = scanner、nextInt();
sum +=count;
}
double avg = sum/3;
System、out、println("总分数为"+sum+"平均分"+avg);
}
}
习题10
10—1
如果准备按字节读取一个文件得内容,应当使用流还就是流?
前者就是以字节为单位顺序得读取源中得数据,后者就是以字符为单位顺序得读取源中得数据。
10—2
流得read方法与流得read方法有何不同?
同上
10—3
BufferedReader流能直接指向一个文件么?
不能,通过向BufferedReader传递一个Reader子类得对象,来创建一个BufferedReader对象
10—4
使用ObjectInputStream与ObjectOutputStream类有哪些注意事项?
ObjectOutputStream得指向应当就是一个输入流对象,因此当准备将一个对象写入到文件时,首先用OutputStream得子类创建一个输出流。同样ObjectInputStream得指向应当就是一个输入流对象,因此当准备从文件读入一个对象到程序中得时候,首先用InputStream得子类创建一个文件输入流。
当使用对象流写入或者读入对象得时,要保证对象就是序列化得。这就是为了保证能把对象写入到文件,并能把对象正确读回到程序得缘故。
10—5
怎样使用输入输出流克隆对象?
只需将该对象写入得对象得输出流得指向得目得地,然后将该目得地作为一个对象得输入流得源,那么该对象输入流从源中读回得对象一定就是源对象得一个克隆,即对象输入流通过对象得序列化信息得到当前流得一个克隆。
10—6
使用RandomAccessFile流将一个文本文件倒置读出。
import java、io、*;
public class Xiti6 {
public static void main(String[] args) {
RandomAccess = null;
int data[] = {1,2,3,4,5,6,7,8,9,0};
try
{
inAndOut =new RandomAccessFile("tom、dat","rw");
for(int i=0;i<data、length;i++)
{
inAndOut、writeInt(data[i]);
}
for(long i = data、length-1;i>=0;i--)
{
inAndOut、seek(i*4);
System、out、printf("\t%d",inAndOut、readInt());
}
inAndOut、close();
}
catch(IOException e)
{}
}
}
10—7
使用java得输入输出流将一个文本文件得内容按行读出,每读出一行就顺序添加行号,并写入到另一个文件中。
10—8
略
10—9
解析一个文件中得价格数据,并计算平均价格,该文件得内容如下:
商品列表:
电视机,2567元/台
洗衣机,3562元/台
冰箱,6573元/台
import java、io、*;
import java、util、*;
public class Xiti9 {
public static void main(String[] args) {
= new File("cost、txt");
Scanner sc = null;
double sum=0;
int i=0;
try
{
sc = new Scanner(file);
while(sc、hasNext())
{
try
{
int price = sc、nextInt();
sum+=price;
i++;
System、out、println(price);
}
catch(InputMismatchException exp)
{
String t = sc、next();
}
}
double avg =sum/i;
System、out、println(avg);
System、out、println("Total Cost "+sum+" dollar");
}
catch(Exception exp)
{
System、out、println(exp);
}
}
}
展开阅读全文