教材学习内容总结
对象(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
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
ComputerAver.java
public class ComputerAver { public void giveAver(double [] b) { double sum=0; for(int i=0;i
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小时
改进情况:
多敲代码