{
fact=1;
for(int j=1;j<=i;j++) fact*=j; sum+=fact; }
System.out.println(\到10的阶乘之和是:\} }
4. 编写一个应用程序,求100以内的全部素数。 答:
class Primes {
public static void main(String args[]) {
int w=1;
for(int i=2;i<=100;i++) {
for(int j=2;j
w=i%j; if(w==0) break; }
if(w!=0)
System.out.println(i+\是素数\} } }
5. 分别用do―while和for循环计算1+1/2!+1/3!+1/4!+?的前20项和。 答: ①for循环 class Sum {
public static void main(String args[]) {
int fact;
double sum=0;
for(int i=1;i<=20;i++) {
fact=1;
for(int j=1;j<=i;j++) fact*=j;
sum+=1.0/fact; }
5
System.out.println(sum); } }
②do―while循环 class Sum {
public static void main(String args[]) {
int i=1; int fact;
double sum=0; do {
fact=1; int j=0;
while(++j<=i) fact*=j;
sum+=1.0/fact; }
while(++i<=20);
System.out.println(sum); } }
6. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。编写应用程序,求1000之内的所有完数。 答:
class Wanshu {
public static void main(String args[]) {
int x,i,sum;
for(x=1;x<=1000;x++) {
sum=0;
for(i=1;i
if(x%i==0) sum+=i; }
if(x==sum)
System.out.println(x+\是完数\} } }
6
7. 编写应用程序,分别使用while和for循环计算8+88+888+?前10项之和。 答: ①for循环 class TheSum {
public static void main(String args[]) {
long sum=0,data=8;
for(int i=1;i<=10;i++) {
sum=sum+data; data=data*10+8; }
System.out.println(sum); } }
②while循环 class TheSum {
public static void main(String args[]) {
long sum=0,data=8,i=0; while(++i<=10) {
sum=sum+data; data=data*10+8; }
System.out.println(sum); } }
8. 编写应用程序,输出满足1+2+3+?+n<8888的最大正整数n。 答:
class Maxn {
public static void main(String args[]) {
int k=1,sum=0;
while((sum+=k)<8888) k++; k--;
System.out.println(\最大能取到:\} }
第4章 类、对象和接口
7
1. 类中的实例变量在什么时候会被分配内存空间?
答: 当该类创建对象之后,实例变量才会被分配相应的内存空间。 2. 什么叫方法的重载?构造方法可以重载吗?
答:①一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同(方法的重载体现了多态性,即功能多态性)。
②构造方法可以重载。
3. 类中的实例方法可以操作类变量(static变量)吗?类方法(static方法)可以操作实例变量吗?
答:①类中的实例方法可以操作类变量。 ②类方法不可以操作实例变量
4. 类中的实例方法可以用类名直接调用吗? 答: 类中的实例方法不可以用类名直接调用。 5. 举例说明protected方法和友好方法的区别。
答: 当子类与父类不在同一个包中时,子类可以继承父类的protected方法;而友好方法此时则不能被子类继承。
6. 举例说明类变量和实例变量的区别。
答:⑴书写: 定义成员变量时,类变量有static修饰;实例变量没有static修饰。 例: class A {
int x; //实例变量
static int y; //类变量 }
⑵内存: 不创建对象,类的实例变量不会被分配内存空间;类变量被分配相应的内存空间。
不同对象的实例变量被分配不同的内存空间;不同对象的类变量被分配相同的内存空间。
任何一个对象改变类变量,其他对象的相应类变量也发生相应变化。 一个对象的实例变量发生改变,不影响其他对象的相应实例变量。 例: 执行语句: A1.x=10; A1.y=20;
这时A2.x的值也是10;而A2.y的值保持原来的初值。
⑶使用: 类变量可以被类方法操作;而实例变量不能被类方法操作。 例: class A {
int x;
static int y;
static void func() {
b=10; //合法 a=20; //非法 } }
类变量可以通过类名访问;实例变量不能通过类名访问。
8