Java实验报告(一)
实验一 Java开发环境与简单Java程序
一、 实验目的
(1) 熟悉JDK开发环境
(2) 熟练掌握结构化程序设计方法
二、 实验内容
- 打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身。例如,153是一个“水仙花数”。
- 编写Java程序,求13-23+33-43+…+973-983+993-1003的值。
- 编程求1!+2!+3!+…+20!。
- 编写Java程序,计算8+88+888+…前10项之和。
- 一个数如果恰好等于它的因子之和,这个数就称为完数。编写程序输出1000以内的所有完数。
- 编写应用程序,输出满足1+2+3+…+n<8888的最大正整数。
- 使用for循环打印下面的图形。
三、 实验过程
1
{
public static void main(String[] args)
{
int i, a, c, b;
for(i=100;i<1000;i++)
{
a=i%10;
c=i/10%10;
b=i/100%10;
if(i==a*a*a+c*c*c+b*b*b)
{
System.out.println(i);
}
}
}
}
2
{
public static void main(String[] args)
{
int i;
int sum=0;
for(i=1;i<=100;i++)
{
if(i%2==0)
{
sum=sum-(i*10+3);
}
else
{
sum=sum+i*10+3;
}
}
System.out.println(sum);
}
}
3
public class reportthree
{
public static void main(String[] args)
{
long sum=0;
for(int i=1;i<=20;i++)
{
sum+=fact(i);
}
System.out.println(sum);
}
public static long fact(int n)
{
long product=1;
for(int i=1;i<=n;i++)
{
product=product*i;
}
return product;
}
}
4
public class reportfour
{
public static void main(String[] args)
{
long count = 0, sum = 0;
for(int i=1;i<=10;i++)
{
count = (count*10)+8;
sum += count;
}
System.out.println(sum);
}
}
5
public class reportfive
{
public static void main(String[] args)
{
int i, j;
for (i = 1; i <= 1000; i++)
{
int sum=0;
for (j = 1; j <= i; j++)
{
if (i % j == 0)
{
sum+=j;
}
}
if ((sum - i) == i)
{
System.out.println(i);
}
}
}
}
6
{
public static void main(String[] args)
{
int sum = 0, n = 0;
int i;
for(i=1;;i++)
{
sum = sum+i;
if(sum>=8888)
{
break;
}
}
System.out.println(sum-i);
}
}
7
{
public static void main(String[] args)
{
int i, j, k;
for(i=0;i<5;i++)
{
for(j=0;j<=5-i;j++)
System.out.print(" ");
for(k=0;k<=i*2;k++)
{
System.out.print("*");
}
System.out.println(" ");
}
}
}
第三周课程总结
this关键字
作用:1强调本类中的方法
2.表示类中的属性(变量)
3.可以使用this调用本类的构造方法1放在首行2不能循环调用
4.this表示当前对象
封装性:属性封装和方法封装
属性封装:private. 一旦成员变量使用private,在类中可以任意访问,但是!超出了本类范围之外就不能直接访问了,即在本类之外进行间接访问,用setter和getter方法设置和取得间接访问。对此还可以在该方法中进行语法的控制-检验代码。setXxx进行设置数据,赋值,无返回值,但有参数;getXxx进行拿取,有返回值,return。
创建对象中多个对象的使用-对象引用传递:
1-per2没有开辟堆内存空间-per2=per1->将per1的堆内存空间使用权给per2;每个栈内存空间都可以修改堆内存的内容。
2-per2也开辟了堆内存空间-per2=per1-> 因为per2本身就有堆内存空间的指向,所以如何在想指向per1对应的空间,则必须先断开已有连接。因此原有的堆空间中没有栈空间所指向,就形成了空间垃圾,等待Java垃圾收集机制进行回收。而此时per2同样可以对per1中的堆内存数据进行修改.