第三周课程总结:
一:class类的定义,类是由属性和方法决定
1:声明成员变量;
2:定义方法内容。
3:具有封装性,继承性,多态性。
二:this的使用
1:强调类的使用;
2:表示当前对象;
3:在构造函数中的使用;
三:static声明属性
1:static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。
2:static声明的代码块是静态代码块;
四:main方法的使用
public:表示此方法可以被外部所调用;
static:表示此方法可以由类名称直接调用;
void:主方法是程序的起点,所以不需要任何的返回值;
main:系统规定好默认调用的方法名称,执行时,默认找到main方法名称;
String args[]:表示运行时的参数 参数传递的形式:
java 类名称 参数1 参数2 参数3....
1.打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身。例如,153是一个“水仙花数”。
实验代码:
public class Main {
public static void main(String[] args) {
int a, b, c, i;
for (i = 100; i < 1000; i++) {
a = i / 100;d
b = i % 100 / 10;
c = i % 10;
if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == i) {
System.out.println(i + "是一个“水仙花数“");
}
}
}
}
2. 编写Java程序,求13-23+33-43+…+973-983+993-1003的值。
实验代码:
public class Main {
public static void main(String[] args) {
int i, num = 0, k, l = 1;
for (i = 1; i <= 100; i++) {
k = 10 * i + 3;
num = num + k * l;
l = -1 * l;
}
System.out.println(+num);
}
}
3. 编程求1!+2!+3!+…+20!。
实验代码:
public class Main {
public static void main(String[] args) {
int i, k, sum = 0;
for (i = 1; i <= 20; i++) {
for (k = 1; k <= i; k++) {
sum += k;
}
}
System.out.println(sum);
}
}
4. 编写Java程序,计算8+88+888+…前10项之和。
实验代码:
public class Main {
public static void main(String[] args) {
long i, k, num = 0;
for (i = 1; i <= 10; i++) {
for (k = 0; k < i; k++) {
num += Math.pow(10, k) * 8;
}
}
System.out.println(num);
}
}
- 一个数如果恰好等于它的因子之和,这个数就称为完数。编写程序输出1000以内的所有完数。
实验代码:
public class he5 {
public static void main(String[] args) {
int i, n, max;
for (i = 2; i <= 1000; i++) {
max = 0;
for (n = 1; n <= i / 2; n++) {
if (i % n == 0)
max += n;
}
if (max == i) {
System.out.println(i);
}
}
}
}
错误:当第二个for循环条件为n<=i
时;实验无法输出结果。
解决:考虑后发现 基本没有因子能大于这个数的二分之一,将其改为n<=i/2
.
6. 编写应用程序,输出满足1+2+3+…+n<8888的最大正整数。
实验代码:
public class he6 {
public static void main(String[] args) {
int i, max = 0, num = 0;
for (i = 1; i < 8888; i++) {
max += i;
if (max > 8888) {
max = num;
break;
} else {
num = max;
}
}
System.out.println(i-1);
}
}
7. 使用for循环打印下面的图(等腰三角形)
实验代码:
public class he7 {
public static void main(String[] args) {
int i, n, h = 1, k;
for (i = 4; i >= 0; i--) {
for (n = 0; n < i; n++) {
System.out.print(" ");
}
for (k = 1; k <= h; k++) {
System.out.print("* ");
}
h++;
System.out.print("\n");
}
}
}
问题:最开始输出自动换行,导致图像不正确。
解决:System.out.println(" ");
是自动换行输出,System.out.print(" ");
是不自动换行输出。