第三周课程总结&实验报告
实验一 Java开发环境与简单Java程序
一、实验目的
(1) 熟悉JDK开发环境
(2) 熟练掌握结构化程序设计方法
二、实验内容
1. 打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身。例如,153是一个“水仙花数”。
2. 编写Java程序,求13-23+33-43+…+973-983+993-1003的值。
3. 编程求1!+2!+3!+…+20!。
4. 编写Java程序,计算8+88+888+…前10项之和。
5. 一个数如果恰好等于它的因子之和,这个数就称为完数。编写程序输出1000以内的所有完数。
6. 编写应用程序,输出满足1+2+3+…+n<8888的最大正整数。
7. 使用for循环打印下面的图形。
三、实验过程
1、打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身。例如,153是一个“水仙花数”。
源码:
public class Project{ public static void main(String args[]) { int x,y,z; for(int i=0;i<1000;i++) { x=i/100; y=(i%100)/10; z=i%10; if(Math.pow(x, 3)+Math.pow(y, 3)+Math.pow(z, 3)==i){ System.out.println(i); } } } }
运行结果
2、编写Java程序,求13-23+33-43+…+973-983+993-1003的值。
源码:
public class Project2{ public static void main(String[] args) { int i, j = 1, sum = 0, k=0; for(i = 13;i <= 1003; i = i + 10) { k = (j) * i; sum = sum + k; j = -j; } System.out.println(sum); } }
运行结果
3. 编程求1!+2!+3!+…+20!。
源码
public class Project3 { public static void main(String[] args) { int i, j ; long sum = 0, k=1; for(i = 1;i <= 20;i++) { k = 1; for(j = 1;j <= i;j++) { k = k * j; } sum += k; } System.out.println(sum); } }
运行结果
4. 编写Java程序,计算8+88+888+…前10项之和。
源码
public class Project4 { public static void main(String[] args) { int i , y = 8; long sum = 0,x = 8; for(i = 1;i <= 10;i++ ) { sum = sum + x; x = (x * 10 ) + y; } System.out.println(sum); } }
运行结果
5. 一个数如果恰好等于它的因子之和,这个数就称为完数。编写程序输出1000以内的所有完数。
public class Project5 { public static void main(String[] args) { int i, j, sum; for(i=0;i<=1000;i++){ if(i==1) continue; sum=1; for(j=2;j<i;j++) if(i%j==0) sum+=j; if(sum == i){ System.out.println(i); } } } }
运行结果
6. 编写应用程序,输出满足1+2+3+…+n<8888的最大正整数。
源码
public class Project6 { public static void main(String[] agrs) { int i, sum = 0; for(i = 0;sum + i< 8888; i++) { sum = sum + i; } System.out.println(i - 1); System.out.println(sum); } }
运行结果
7. 使用for循环打印下面的图形。
源码
public class Project7 { public static void main(String[] args) { int i, j, x = 4,k,l = 4; for(i = 0;i < 5;i++) { for(j = x;j > 0;j--) { System.out.print(" "); } x = x -1; for(k = l;k < 5;k++) { System.out.print("* "); } System.out.print("\n"); l--; } } }
运行结果
二、学习总结
1、构造方法可以为类中的属性初始化,构造方法与类名称相同,无法返回值声明,如果在类中没有明确的定义出构造方法,则会自动生成一个无参的声明都不做的构造方法,在一个类中的构造方法可以重载,但是每个类都至少有一个构造方法。
2、String类在Java中较为特殊,String可以使用直接赋值的方式,也可以通过构造方法进行实例化,前者只产生一个实例化对象,而且此实例化对象可以重用,后者将产生两个实例化对象,其中一个是垃圾空间,在String中比较雷人实验equals方法,而“==”比较的只是两个字符串的地址值,字符串的内容一旦声明则不可改变。
3、在Java中使用this关键字可以表示当前的对象,通过this属性可以调用本类中的属性,通过this方法()可以调用本类中 的其他方法,也可以通过this()的形式调用本类中 的构造方法,但是调用时要求放在构造方法的首行。
4、使用static声明的属性和方法可以由类名称直接调用,static属性是所有地下共享的,所有对象都可以对其进行操作。