教材学习内容总结
对象(Object):存在的具体实体,具有明确的状态和行为
类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制
从类看对象:类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象
从对象看类:类的产生,是从少数实例,推广到大量相似实例的抽象化过程(abstraction)
- 类是对象的设计图,对象是类的实例,生成对象要先定义类。
- 类成员变量整个类中有效,局部变量仅在方法中有效。
- 局部变量的名字与成员变量的名字相同时,成员变量被隐藏。
成员变量有默认值,局部变量没有,所以使用局部变量前需要先需要声明其值。(注:声明与赋值不等价 int a=12;不等于int a; a=12;)
在一个程序功能中有多个类class复合调用时,编译后运行应当运行有main函数的那一个类,别的类可能看似行数很多,但是只是作为主程序中的一个方法不能单独运行。例如教材代码:
SingGame.java
public class SingGame {
public static void main (String args[]) {
Line line=new Line();
line.givePersonScore();
}
}
InputScore.java
import java.util.Scanner;
public class InputScore {
DelScore del;
InputScore(DelScore del) {
this.del=del;
}
public void inputScore(){
System.out.println("请输入评委数:");
Scanner read=new Scanner(System.in);
int count = read.nextInt();
System.out.println("请输入评委的分数:");
double []a =new double[count];
for(int i=0;i<count;i++){
a[i]=read.nextDouble();
}
del.doDelete(a);
}
}
DelScore.java
public class DelScore {
ComputerAver computer;
DelScore(ComputerAver computer) {
this.computer=computer;
}
public void doDelete(double [] a) {
java.util.Arrays.sort(a);
System.out.print("去掉一个最高分:"+a[a.length-1]+",");
System.out.print("去掉一个最低分:"+a[0]+"。");
double b[] =new double[a.length-2];
for(int i=1;i<a.length-1;i++) {
b[i-1]=a[i];
}
computer.giveAver(b);
}
}
ComputerAver.java
public class ComputerAver {
public void giveAver(double [] b) {
double sum=0;
for(int i=0;i<b.length;i++){
sum=sum+b[i];
}
double aver=sum/b.length;
System.out.println("选手的最后得分:"+aver);
}
}
Line.java
public class Line {
InputScore one;
DelScore two;
ComputerAver three;
Line(){
three = new ComputerAver();
two=new DelScore(three);
one=new InputScore(two);
}
public void givePersonScore() {
one.inputScore();
}
}
此时有五个类文件,编译通过后应当运行SingGame
。
代码调试中的问题和解决过程
问题:不在一个程序中的多个类相互调用时,想要通过一条命令让位于src
下的多个代码编译后自动放入bin
文件夹中,会提示错误找不到符号。
解决方法:新建一个文件夹将此程序所有类放入,然后通过命令编译该文件夹所有.java文件。
代码托管
感悟
学习至第四章,发现渐渐开始有些难度了,也算是正式开始步入Java程序设计的。对象,方法等内容也是一般java程序必不可少的设计内容,勤加练习多打代码,会渐渐了解其套路,从而理解其使用。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 1/4 | 10/10 | |
第二周 | 300/500 | 1/5 | 10/20 | |
第三周 | 800/1300 | 1/6 | 20/40 | |
第四周 |
计划学习时间:20小时
实际学习时间:20小时
改进情况:
多敲代码