20165231 2017-2018-2 《Java程序设计》第3周学习总结

本文深入探讨Java中对象与类的概念,包括它们之间的关系及如何创建和使用类。此外,还提供了一个涉及多个类交互的示例代码,帮助读者更好地理解类与对象的实际应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

教材学习内容总结

  • 对象(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文件夹中,会提示错误找不到符号。

代码问题1

解决方法:新建一个文件夹将此程序所有类放入,然后通过命令编译该文件夹所有.java文件。

代码问题2

代码托管

代码量

感悟

学习至第四章,发现渐渐开始有些难度了,也算是正式开始步入Java程序设计的。对象,方法等内容也是一般java程序必不可少的设计内容,勤加练习多打代码,会渐渐了解其套路,从而理解其使用。

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第一周200/2001/410/10
第二周300/5001/510/20
第三周800/13001/620/40
第四周
  • 计划学习时间:20小时

  • 实际学习时间:20小时

  • 改进情况:
    多敲代码

参考资料

转载于:https://www.cnblogs.com/Yhooyon/p/8595107.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值