第三周课程总结&实验报告
课程总结
在这周对Java进行了更深层次的学习,Java的学习也变得越来越困难而有趣,加入了一些新的构造新的方法,还学习了一些简化代码的方式。
面向对象的基本概念
对于面向对象的程序设计有三个主要特征:封装性,继承性,多态性。
封装性
为属性封装:private 属性类型 属性名称;
为方法封装:private 方法返回值 方法名称
构造方法
构造方法的名称必须与类名称一致
构造方法的声明处不能有任何返回值类型的声明
类的继承格式
在Java中使用extends关键字完成类的继承关系
继承的限制
在Java中只允许单继承,不能使用多重继承,但是允许多层继承
方法的覆写
在继承的关系中也存在着方法覆写的概念,即在子类中定义与父类中同名的方法
方法覆写时必须考虑到权限,被子类覆写的方法不能拥有比父类方法更加严格的访问权限
这周所学其实很多都还只是在皮毛,需要更多的时间去消化和吸收。
实验报告
1.打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身。例如,153是一个“水仙花数”
public class shuixianhua {
public static void main(String[] args) {
int i,x,y,z,k;
for(i=100;i<=999;i++){
z=i%10;
k=i/10;
y=k%10;
x=k/10;
if(Math.pow(x,3)+Math.pow(y,3)+Math.pow(z,3)==i){
System.out.println("水仙花数为:" + i);
}
}
}
}![](https://img2018.cnblogs.com/blog/1580410/201909/1580410-20190915212947231-782896059.png)
2. 编写Java程序,求13-23+33-43+…+973-983+993-1003的值。
public class jiajian {
public static void main(String[] args){
int i,x,k=1,sum=0;
for(i=13;i<=1003;){
x=i*k;
sum+=x;
k=(-1)*k;
i=i+10;
}
System.out.println(sum);
}
}
![](https://img2018.cnblogs.com/blog/1580410/201909/1580410-20190915213003436-1220212530.png)
3. 编程求1!+2!+3!+…+20!
public class jiecheng {
public static void main(String[] args){
int i,j,k,sum=0;
for(i=1;i<=20;i++){
k=1;
for(j=1;j<=i;j++){
k=k*j;
}
sum=sum+k;
}
System.out.println(sum);
}
}
![](https://img2018.cnblogs.com/blog/1580410/201909/1580410-20190915213022467-1268758272.png)
四:编写Java程序,计算8+88+888+…前10项之和。
实验代码:
package hlha;
public class qianshi {
public static void main(String args[]){
long a,b=0, c=0;
System.out.println("前十项和");
for(a=1;a<=10;a++){
b=b*10+8;
c+=b;
}
System.out.print(c);
}
}
![](https://img2018.cnblogs.com/blog/1580410/201909/1580410-20190915213102923-891061668.png)
五:一个数如果恰好等于它的因子之和,这个数就称为完数。编写程序输出1000以内的所有完数。
实验代码:
package hlha;
public class wanshu {
public static void main(String[] args) {
int i,j;
for(i = 1;i<=1000;i++){
int sum;
sum =0;
for(j = 1;j<i;j++)
{
if(i%j ==0)
{
sum +=j;
}
}
if(i == sum)
System.out.println(" "+i);
}
}
}
![](https://img2018.cnblogs.com/blog/1580410/201909/1580410-20190915213149702-1437459784.png)
六: 编写应用程序,输出满足1+2+3+…+n<8888的最大正整数。
实验代码:
package hlha;
public class sum {
public static void main(String[] args) {
int sum=0;
int i;
for(i=1;sum+i<8888;i++) {
sum=sum+i;
}
System.out.println(+(i-1));
}
}
![](https://img2018.cnblogs.com/blog/1580410/201909/1580410-20190915213219852-1532354476.png)
七:使用for循环打印下面的图形。
实验代码:
package hlha;
public class dengyao {
public static void main(String [ ] args){
for(int i=1;i<=5;i++){
for(int z=1;z<=5-i;z++){
System.out.print(" ");
}
for(int j=1;j<=(2*i-1);j++) {
System.out.print("*");
}
System.out.println();
}
}
}
![](https://img2018.cnblogs.com/blog/1580410/201909/1580410-20190915213446721-1574894154.png)