一道练习题,所牵扯出来非知识点本身的内容
- 在学习过程最重要的不是某一个知识点,比如这道小练习(重要的不是:如何创建数组,如果new一个类,如何创建一个方法)
- 重要的是:创建数组的时创建的20个固定类型的内存空间,实例化之后的20个内存对象存储到这20个内存中(每一个对象都是相互独立),到此把基础架构物料准备好(类、内存、实例化、相互独立),至于后续的具体的业务逻辑,这是最简单
- 学习实践的重点在:开发过程中的思考过程,为什么怎么去思考?原因是什么?什么时候再什么情况下?这样设计开发是否合理?设计什么样的方法可以去改进它?(1、2、3…),在设计者方法的时候自己又是如何思考的,为什么怎么去思考设计这种改进方案,对于你前一个方案有什么优势与劣势?这样的思考过程,才是最核心的本质的东西,中间的具体知识都是死的,只是棋子而已。
// 一道入门级练习题:
// 1. 定义类Student, 包含三个属性:学号number(int), 年级state(int), 成绩score(int)
// 2. 创建20个学生对象, 学号为1到20, 年级和成绩都由随机数确定, 打印出3年级(state值为3)的学生信息
public class StudentTest {
public static void main(String[] args) {
// 创建数组(java中的类, 本身就能当做一种对象类型)
StudentPerson[] students = new StudentPerson[20];
for (int i = 0; i < students.length; i++) {
// 給对于的堆空间赋值, 赋值为实例化StudentPerson之后, 新开辟的空间
students[i] = new StudentPerson();
// 创建20个固定的StudentPerson类型的内存空间, 然后依次給其存储20个StudentPerson类实例化的互相独立的又初始值相同的内容
students[i].number = i + 1;
students[i].state = (int) (Math.random() * 6 + 1);
students[i].score = (int) Math.round((Math.random() * 100));
}
for (int i = 0; i < students.length; i++) {
if (students[i].state == 3) {
String result = students[i].info(students[i].number, students[i].state, students[i].score);
System.out.println(result);
}
}
}
}
class StudentPerson {
int number;
int state;
int score;
public String info(int number, int state, int score) {
return "学号:" + number + ",年级:" + state + ",成绩" + score;
}
}
// 对比JS的构造函数、类、类型,JS简直被全方位碾压
持续的1-2小时学习周期,设计目标(自己 or 长者),将漫长的旅程分解为一系列可控的目标,并且每次只关注其中一个,重点关注你的思考过程与方法。
没必要遮遮掩掩,需要吐出你的东西,让除你之外的人给予反馈(这是最强烈的外部动机),加上内在的动力,这将形成正向反馈机制,包裹着你一路向前,做到一些你可能一直以为自己"够不着"的那些可能性。
共勉
2018-12-13 23:41:50