20165231 2017-2018-2 《Java程序设计》第3周学习总结
2024-10-12 10:03:33
教材学习内容总结
对象(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小时
改进情况:
多敲代码
参考资料
最新文章
- Maven POM元素继承
- mybaits中插入到mysql数据库自动返回id主键
- 使用 TOP 限制更新的数据
- mybatis mapper association collection
- SQL Server 取日期时只要年月或年月日
- Java多线程之新类库中的构件PriorityBlockingQueue
- trap在shell中捕捉信号
- hadoop中遇到的问题。
- linux命令行模式下实现代理上网
- SIP协议错误代码大全
- Delphi 设置文件属性
- IOS应用上传须要做的工作
- vuex是什么东西?
- 实时同步到Hbase的优化-1
- Delphi 2010 新增功能之: IOUtils 单元(6): TPath(结构体) 的方法与属性
- table-layui
- axf 文件包含太多的调试信息,导致的编译错误
- setnx redis
- C# 动态创建SQL数据库(二) 在.net core web项目中生成二维码 后台Post/Get 请求接口 方式 WebForm 页面ajax 请求后台页面 方法 实现输入框小数多 自动进位展示,编辑时实际值不变 快速掌握Gif动态图实现代码 C#处理和对接HTTP接口请求
- Codeforces Round #283 (Div. 2) A ,B ,C 暴力,暴力,暴力
热门文章
- 安装 java环境 和 tomcat
- day14-jdbc案例(简单的curd&;分页)
- org.hibernate.MappingException: class com.itheima.domain.Customer.java not found while looking for property: cust_id 	at org.hibernate.internal.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.
- Thymeleaf中的&;&;解析问题
- MySQL数据库优化_limit_2
- Java项目中,如何限制每个用户访问接口的次数
- 收获,不止_Oracle读书笔记
- webserver nginx / https / upstream
- C++回顾day02---<;对象构造和析构,外加友元函数>;
- C#设计模式(10)——桥接模式