零基础学 Java
臧萌
PayPal 数据处理组技术负责人
46665 人已学习
新⼈⾸单¥68
课程目录
已完结/共 170 讲
第二章 Java面向对象编程 (74讲)
时长 07:13
时长 12:08
时长 06:26
时长 05:30
时长 14:16
时长 08:30
零基础学 Java
登录|注册
留言
29
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 26 | 用数组保存成绩
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述
03 | 开发环境搭建(macOS)
04 | HelloWorld程序编译和运行(macOS)
05 | 开发环境搭建(Windows)
06 | HelloWorld程序编译和运行(Windows)
07 | 详解HelloWorld程序
08 | IntelliJ IDEA集成开发环境的安装和使用(macOS)
09 | IntelliJ IDEA集成开发环境的安装和使用(Windows)
10 | 从加减乘除到变量
11 | 再探计算加减乘除的程序
12 | Java中的基本数据类型
13 | Java中的运算符
14 | Java中的位运算符
15 | 基本数据类型的更多语法点
16 | 字符集编码和字符串
17 | 操作符和数据类型总结
18 | 程序执行流程之if-else语句(上)
19 | 程序执行流程之if-else语句(下)
20 | 程序循环之for语句
21 | 代码块和变量的作用域
22 | 程序循环之while语句
23 | 程序执行流程之switch语句
24 | 循环和判断的总结(上)
25 | 循环和判断的总结(下)
26 | 用数组保存成绩
27 | 认识变量和数组(上)
28 | 认识变量和数组(下)
29 | 多维数组
30 | 用数组灵活处理程序
31 | 类(class)
32 | 初探类和对象
33 | 认识引用类型(上)
34 | 认识引用类型(下)
35 | 类、对象和引用的关系
36 | 认识数组类型
37 | 引用的缺省值null
38 | 像自定义类型一样使用类
39 | Java中的包和访问修饰符(上)
40 | Java中的包和访问修饰符(下)
41 | 打造一个小超市
42 | IntelliJ调试程序初探
43 | 方法:让Merchandise对象有行为
44 | 返回值:让Merchandise计算毛利润
45 | 参数:让Merchandise计算多件商品的总价
46 | 参数和返回值是怎么传递的
47 | 分清参数、局部变量和实例的地盘
48 | 隐藏的this自引用
49 | 理解方法:一种特殊的代码块
50 | 理解方法的调用:代码的一种特殊跳转
51 | 给类和方法加Java注释
52 | 成熟的类的对象要自己做事情
53 | 方法的签名和重载
54 | 重载的参数匹配规则
55 | 构造方法:构造实例的方法
56 | 构造方法的重载和互相调用
57 | 静态变量
58 | 静态方法
59 | 静态方法的重载
60 | static代码块和static变量初始化
61 | 方法和属性的可见性修饰符
62 | 重新认识老朋友:Math和Scanner(上)
63 | 重新认识老朋友:Math和Scanner(下)
64 | 最熟悉的陌生人:String (上)
65 | 最熟悉的陌生人:String (下)
66 | 重新认识老朋友: main方法和System类
67 | String类的好兄弟
68 | 继承:方便让商品增加新的类别
69 | 子类对象里藏着一个父类对象
70 | 覆盖:子类想要一点不一样
71 | super:和父类对象沟通的桥梁
72 | super:调用父类的构造方法
73 | 父类和子类的引用赋值关系
74 | 多态:到底调用的哪个方法?(上)
75 | 多态:到底调用的哪个方法?(下)
76 | 多态里更多的语法点(上)
77 | 多态里更多的语法点(下)
78 | instanceof操作符
79 | 继承专属的访问控制:protected
80 | final修饰符(上)
81 | final修饰符(下)
82 | 继承里的静态方法
83 | 插曲:for循环的另一种写法
84 | 万类之祖:Object类
85 | hashCode和equals 方法(上)
86 | hashCode和equals 方法(下)
87 | toString方法
88 | 初探Class类
89 | 初探反射(上)
90 | 初探反射(下)
91 | 面向对象三要素:封装、继承和多态
92 | 枚举:定义商品的门类
93 | 接口:让商品类型更丰富(上)
94 | 接口:让商品类型更丰富(下)
95 | 抽象类:接口和类的混合体
96 | 有方法代码的接口
97 | 接口内代码的更多内容
98 | 静态内部类
99 | 成员内部类
100 | 局部内部类
101 | 匿名类
102 | 特殊类的总结
103 | 让我们的超市运转起来:设计篇
104 | 让我们的超市运转起来:代码篇
105 | 初识异常:try catch
106 | Java中异常的分类
107 | 抛出异常的语法
108 | Java异常的传递
109 | 自定义异常
110 | 异常传递不是凌波微步
111 | try catch finally语句
112 | 自动回收资源的try语句
113 | Java中的常见异常
114 | Collection类族简介
115 | Collection中的List (上)
116 | Collection中的List(下)
117 | Collection中的Set
118 | 泛型简析(上)
119 | 泛型简析(下)
120 | 再探泛型
121 | Iterator接口
122 | Map:key和value的映射
123 | 定义自己的注解
124 | Lambda V.S. 匿名类(上)
125 | Lambda V.S. 匿名类(下)
126 | 基本类型的自动装箱和拆箱
127 | Java中的File类
128 | Java I/O简介
129 | 写文件内容小程序
130 | 读文件内容小程序
131 | 网络通讯名词简介
132 | 简单的网络通讯小程序(上)
133 | 简单的网络通讯小程序(下)
134 | 简单的抓取网页内容的程序
135 | JDK和JRE
136 | 初识线程
137 | 创建自己的线程
138 | 再探线程
139 | 多线程:混乱开始了
140 | 同步控制之synchronized
141 | 同步控制之wait notify
142 | 多线程经典模型:生产者消费者
143 | 线程同步之join
144 | 死锁
145 | ThreadLocal线程专属的变量
146 | 定时任务
147 | volatile关键字的作用
148 | concurrent包基本原理
149 | concurrent包中的Atomic类族
150 | concurrent包中的锁
151 | concurrent包中的数据结构
152 | concurrent包中的线程池
153 | 聊天室开张喽 (上)
154 | 聊天室开张喽 (下)
155 | 什么是学习一门语言
156 | Java平台简介
157 | Maven概念简介
158 | Maven的安装和配置
159 | 创建一个简单的Maven项目
160 | 一个从pptx文件中抽取文字的小工具
161 | Maven常用命令和插件
162 | Intellij更多功能介绍
163 | 值得学习的类库简介
164 | 如何在Stack Overflow上提问才不会被骂
165 | 浅谈程序设计
166 | 游戏小程序功能定义
167 | 游戏小程序设计和模块划分
168 | 游戏小程序代码分析
169 | 使用Swagger创建一个Spring Boot的Web服务
170 | 结课测试&结束语
本节摘要

PDF 课件和源代码下载地址:
https://gitee.com/geektime-geekbang/LetsJava

登录 后留言

全部留言(29)

  • 最新
  • 精选
赵圆子
老师你好,int YuwenIndex = 0; names [YuwenIndex] ="语文";这两行是不是和 names [0] = "语文",一样的?为啥要额外给各学科int一下?

作者回复: 是一样的。前者虽然啰嗦,但是代码更容易阅读。如果直接写names[0],过一阵子再看这个代码,就很可能不知道0是代表什么了。

2021-08-29
2
Geek_ed13a7
这节讲的有点难啊,没听懂。

作者回复: 前面几节讲数组的可以再听一听. 理解一下什么是数组(本子), 什么是索引(页码), 什么是数组的名与实.

2019-10-28
2
carZycriss
请问老师,我通过以下两种方式尝试了录入成绩以及对应分数,但是第一种的录入方式没有得到我想要的录入一个科目名字再录入一个成绩的效果,java在我输入一个科目以及一个对应的科目名称后,变成了只让我输入分数,跳过了录入科目名字的环节,请问这是为什么?我采用第二种方式,将两个需要录入的数据分开录入,才可以。下面是我的录入的部分的代码,其他的我没有复制过来。 第一种录入: //科目成绩的录入 for (int i = 0; i < scorecount; i++) { System.out.println("输入录入的科目名称:"); kemu[i] = in.nextLine(); System.out.println("输入录入科目的对应成绩:"); fenshu[i] = in.nextInt(); } 输出如下: 输入录入的科目名称: 语文 输入录入科目的对应成绩: 10 输入录入的科目名称: 输入录入科目的对应成绩: 10 输入录入的科目名称: 输入录入科目的对应成绩: 10 第二种: //科目成绩的录入 for (int i = 0; i < scorecount; i++) { System.out.println("输入录入的科目名称:"); kemu[i] = in.nextLine(); } for (int g=0;g<scorecount;g++){ System.out.println("输入录入科目的对应成绩:"); fenshu[g] = in.nextInt(); } 输出如下: 输入录入的科目名称: 语文 输入录入的科目名称: 数学 输入录入的科目名称: 英语 输入录入科目的对应成绩: 10 输入录入科目的对应成绩: 10 输入录入科目的对应成绩: 5 最高分数科目及分数为: 语文:10 数学:10

作者回复: 问题就出再 in.nextInt(); 上,感觉你不是第一个遇到这个问题的同学。我第一次接触这个,也觉得很别扭。但是从API的设计上来说,是没问题的。我们学会方法背后的实际行为就好。 详细回答在此: https://github.com/deepnighttwo/LetsJava/blob/master/FAQ/02%E7%AB%A0%20Scanner%E9%87%8CnextInt%E7%9A%84%E5%B0%8F%E5%9D%91.md

2019-09-09
3
2
Tonge
老师,我们第几章会讲到界面设计的?

作者回复: Java 的桌面开发(Swing, AWT, SWT)不包含在本教程里面. 我个人是做过一段时间的桌面应用开发的. 后来自己业余做了一个小玩具, 后面也没有再花时间再上面, 可以给你一个参考 https://github.com/deepnighttwo/juliaset-fractal

2019-05-30
5
2
文西
老师,每门课对应的索引,我使用了俩个数组加循环,看着感觉更简洁一点 String name [] = {"语文","数学","英语","物理","化学","生物"}; String names[] = new String[name.length]; for (int i =0;i<name.length;i++) { names[i] = name[i]; }

作者回复: 👍👍,精益求精,可以看看javadoc,试试看System类里的arraycopy方法

2022-09-01
1
故事熊
想问当我在(假设是A类中)写好int数组,以及使用string赋完值之后,如何在B类中进行操作? 目前我使用了继承的方法,依旧报错,是否需要在B类中做一个声明? 还是可以直接A类中操作,之后在B类中直接调用把数组封装起来的方法即可? 我的参考链接:https://blog.csdn.net/weixin_43599377/article/details/99312766

作者回复: 首先例子中的代码有个不合适的地方就是使用了static修饰数组。如果A中的数组使用static的话,别的类完全不需要继承也可以使用。 你使用了继承也不行是不是也用了static?你可以把你的代码贴出来看看。

2020-08-27
1
第三异星
筛选相同最高分数的科目完成 基本原理是先生成一连串在[97,100]范围的各科目分数,再找出最高的分数,然后将各科目分数与最高分对比,与最高分相同的科目将依次列出 {各科目分数的double值均先进行了强制类型转换成int值,整数好求出相同最高分} public class array { public static void main(String[] args) { int totalscorecount = 6; double[] score = new double[totalscorecount]; String[] name = new String[totalscorecount]; name[0] = "语文"; name[1] = "数学"; name[2] = "英语"; name[3] = "物理"; name[4] = "生物"; name[5] = "化学"; int maxscorename = 0; double maxscore = 0; int i; for (i = 0; i < totalscorecount; i++) { score[i] = 97 + Math.random() * 4; System.out.println(name[i] + "成绩为" + (int) score[i]); for (int a = 0; a < score[i]; a++) { if (maxscore < score[i]) { maxscore = (int) score[i];//选出最高分数 } } } System.out.println("所有科目中成绩最高的是" + (int) maxscore + "分,以下为最高分数科目"); for (i = 0; i < totalscorecount; i++) if (maxscore == (int) score[i]) { maxscorename = i; System.out.print(name[i] + "\t");//选出和最高分数相同的科目 } } }

作者回复: 条理清晰,代码整洁。

2020-08-15
1
虢家
double maxscore=0; int maxscoreIdxe=-1; for (int i=0;i<total;i++);{ if(scores[i]>maxscore) { 老师,程序后面的double maxscore=0; int maxscoreIdxe=-1;具体表示的是什么意思? 还有我输入 if(scores[i]>maxscore) { 中的[i]的时候i会变红,好像不可以用,是因为什么?

作者回复: int maxscoreIdxe=-1;具体表示的是什么意思? 意思是给maxscoreIdxe一个非法的值,如果数组size是0,后面的程序能够知道没有一个合法的maxscoreIdxe if(scores[i]>maxscore) { 中的[i]的时候i会变红 从你给出的这段code看,这么用是没问题的。

2020-03-09
1
陈邯飞
老师,数组不能直接打印出来吗?为什么我打印数组名,输出的是数组类型和地址

作者回复: 打印的时候,会调用对象的toString方法将对象转成String再输出。 数组本身没有很好的实现toString方法,执行的还是从Object类里继承的toString方法。你可以尝试一下java.util.Arrays.toString(myArr)

2023-02-24
一个射手座的程序猿
找出成绩最高以及科目🫣🫣🫣🤔🤔 public class Findthemaximumnumber { public static void main(String[] args) { // 声明6个变量,分别代表6门M科目对应的索引 int YUWENIndex = 0; int SHUXUEIndex = 1; int WAIYUIndex = 2; int WULIIndex = 3; int HUAXUEIndex = 4; int SHENGWUIndex = 5; // 创建一个double类型的数组 int totalScoreCount = 6; // 创建了一个大小为6的数组 double[] scores = new double[totalScoreCount]; // 创建一个String数组 String[] name = new String[6]; name[YUWENIndex] = "语文"; name[SHUXUEIndex] = "数学"; name[WAIYUIndex] = "外语"; name[WULIIndex] = "物理"; name[HUAXUEIndex] = "化学"; name[SHENGWUIndex] = "生物"; // 给每门课随机分配成绩 for (int i = 0; i < totalScoreCount; i++) { // 生成一个97到100的随机数 scores[i] = 97 + (int) (Math.random() * (100 - 97 + 1)); System.out.println(name[i] + "的成绩是" + scores[i]); } double maxScore = 0; for (int i = 0; i < totalScoreCount; i++) { if (scores[i] > maxScore) { maxScore = scores[i]; } } System.out.println("成绩最高科目以及成绩为:"); for (int i = 0; i < totalScoreCount; i++) { if (maxScore == scores[i]) { System.out.println(" " + name[i] + ":" + scores[i]); } } } }

作者回复: 👍👍

2022-06-25
收起评论