if(j%i==0) break; } if(i>j/2) {
System.out.print(\ } } } }
3.class Xiti3 {
public static void main(String args[]) { double sum=0,a=1,i=1; do { sum=sum+a; i++; a=(1.0/i)*a; }
while(i<=20);
System.out.println(\使用do-while循环计算的sum=\ for(sum=0,i=1,a=1;i<=20;i++) { a=a*(1.0/i); sum=sum+a; }
System.out.println(\使用for循环计算的sum=\ } }
4.public class Xiti4 {
public static void main(String args[]) { int sum=0,i,j; for(i=1;i<=1000;i++) { for(j=1,sum=0;j
System.out.println(\完数:\ } } }
5.public class Xiti5 {
public static void main(String args[]) { int m=8,item=m,i=1; long sum=0;
for(i=1,sum=0,item=m;i<=10;i++) { sum=sum+item;
item=item*10+m; }
System.out.println(sum); } }
6. public class Xiti6 {
public static void main(String args[]) { int n=1; long sum=0; while(true) { sum=sum+n; n++;
if(sum>=8888) break; }
System.out.println(\满足条件的最大整数:\ } }
习题4(第4章)
一、 问答题
1.面向对象语言有哪三个特性? 2.类名应当遵守怎样的编程风格?
3.变量和方法的名字应当遵守怎样的编程风格?
4.类体内容中声明成员变量是为了体现对象的属性还是行为? 5.类体内容中定义的非构造方法是为了体现对象的属性还是行为? 6.什么时候使用构造方法?构造方法有类型吗? 7.类中的实例变量在什么时候会被分配内存空间? 8.什么叫方法的重载?构造方法可以重载吗?
9.类中的实例方法可以操作类变量(static变量)吗?类方法(static方法)可以操作实例变量吗?可以。不可以。
10.类中的实例方法可以用类名直接调用吗?
8.一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。可以。 9.
10.不可以。
11.简述类变量和实例变量的区别。
12.this关键字代表什么?this可以出现在类方法中吗?
1. 封装、继承和多态。
2.当类名由几个单词复合而成时,每个单词的首字母使用大写。
3.名字的首单词的首字母使用小写,如果变量的名字由多个单词组成,从第2个单词开始的其它单词的首字母使用大写。 4.属性 5.行为
6.用类创建对象时。没有类型 7.用类创建对象时。
8.一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。可以。 9.可以。不可以。 10.不可以。
11.一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间。所有对象的类变量都分配给相同的一处内存,对象共享类变量。 12.代表调用当前方法的对象。不可以。 二、选择题
1.下列哪个叙述是正确的? b
A. Java应用程序由若干个类所构成,这些类必须在一个源文件中。
B. Java应用程序由若干个类所构成,这些类可以在一个源文件中,也可以分布在若
干个源文件中,其中必须有一个源文件含有主类。 C. Java源文件必须含有主类。
D. Java源文件如果含有主类,主类必须是public类。 2.下列哪个叙述是正确的? d
A. 成员变量的名字不可以和局部变量的相同。
B. 方法的参数的名字可以和方法中声明的局部变量的名字相同。 C. 成员变量没有默认值。 D. 局部变量没有默认值。
3.对于下列Hello类,哪个叙述是正确的?d
A. Hello类有2个构造方法。
B. Hello类的int Hello()方法是错误的方法。 C. Hello类没有构造方法。
D. Hello无法通过编译,因为其中的hello方法的方法头是错误的(没有类型)。
class Hello { Hello(int m){ }
int Hello() {
return 20; } hello() { } }
4.对于下列Dog类,哪个叙述是错误的?d
A. Dog(int m)与Dog(double m)互为重载的构造方法。
B. int Dog(int m)与void Dog(double m)互为重载的非构造方法。 C. Dog类只有两个构造方法,而且没有无参数的构造方法。 D. Dog类有3个构造方法。
class Dog { Dog(int m){ }
Dog(double m){ }
int Dog(int m){ return 23; }
void Dog(double m){ } }
构造方法是一种特殊的方法,与一般的方法不同是:
1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。
2.构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。
3.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。
5.下列哪些类声明是错误的?cd
A) class A
B) public class A C) protected class A D) private class A
6.下列A类中【代码1】~【代码5】哪些是错误的?1 4
class Tom { private int x = 120;