2020.9.29收获
今日收获:
1、对编程的精义有了更深层次的理解
首先我们面对的是原始的需求,正是因为存在问题,所以才要想解决问题的办法。
有了想要解决问题的想法,而个人能力有限,因此需要寻找伙伴,及项目中的团队,需要进行有效的项目沟通。
确立了团队成员后,需要确立项目目标,即在对问题进行实际考量后确定想要达到的最大程度,编程的全过程均是为了这个目标而服务。
最后需要程序员执行的就是确定解决问题的方法,具体问题具体分析,确立最适合此问题的合理方案。
2、简单理解了什么叫优秀的编程思维
编程思维并不是编写程序的技巧,而是一种高效解决问题的思维方式。所谓编程思维,就是理解问题找出路径的思维过程,它有分解、识别模式、抽象、算法四个步骤组成。
其中分解思想尤为关键,在处理问题的过程中,绝大多数问题并不能简单明了的处理完成。要想更有效零更合理的完成项目,就要有分而治之的思想,即把一个复杂的大问题拆解成更可执行,更好理解的小步骤。
以上次ATM程序为例:
第一次分解,我们要确定两个类,一个是数据类Account类,另一个是执行类AccountManager类;
第二次分解,我们要对AccountManager进行更加细化的分解,分为主界面方法、存款方法、取款方法、转账方法、修改密码方法、查询账户等多种方法,完成程序所需要的各种要求。
第三次分解,我们再对不同的方法板块进行执行步骤的细分,例如取款方法中应包含取款选择、取款验证、取款成功或失败跳转等步骤。
3、对Java语法基础进行了进一步的回顾
1)Java的基本运行单位是 类
2)String 是一个类,不是数据类型
3)明确规范标识符的重要性:规范的命名体现了一个软件开发者的素质,标识符起名应该尽量做到“望名知意”。
4)利用关键字 final 声明常量,对于全局的常量(即在整个项目中都可用),通常按以下模式声明:public static final int MAX_VALUE=512
5) String.valueof():将基本数据形态转换成String 的static方法
6)foreach 使用方法 和 枚举使用方法: https://blog.csdn.net/u012827205/article/details/22197695?utm_source=app
7)Java中除了int 、float等少数几个数据类型,其余的数据类型都用来引用对象,int、float 等这些数据类型称为“原始数据类型”。
8)变量与内存
每个变量都有一个名字、数据类型、所占内存单元数和一个值
名字对应于内存中的位置、数据类型决定了它所占用的内存单元数量、值表示变量所占用的内存单元中所保存的数据。
变量的读写:当新值被赋给变量时,老值将被取代,仅从内存中读数据不会破坏数据。
在实际开发中,一般使用变量来存储用户在程序运行时输入的数据,变量在使用前应保证它有确切的值。
变量的作用域:每个变量都有一个“有效”的区域(称为“作用域”),出了这个区域,变量将不再有效。
*********************************************************************************
四则运算
(1)生成30道随机的两个数的四则运算
package day02; import java.util.Random; public class Test { public static void main(String args[]) { for (int i = 0; i < 30; i++) { Random rand = new Random(); int first = rand.nextInt(101); int second = rand.nextInt(101); String[] fuhao = new String[] { "+", "-", "*", "/" }; String fh = fuhao[rand.nextInt(4)]; System.out.println(first + fh + second + "="); } } }
(2)题目避免重复
package day02; import java.util.Random; public class Test { public static void main(String args[]) { Random rand = new Random(); boolean [] bool=new boolean[100]; String[] fuhao = new String[] { "+", "-", "*", "/" }; int first=0;int second=0;String fh=" "; for (int i = 0; i < 30; i++) { do { first = rand.nextInt(101); second = rand.nextInt(101); fh = fuhao[rand.nextInt(4)]; }while(bool[first]&&bool[second]); bool[first]=true; bool[second]=true; System.out.println(first + fh + second + "="); } } }
其中用布尔变量数组来存储是否生成了该数字,生成后,该数字作为布尔数组下表的对应布尔值变成了true,下一次生成该数字就会再次进入do...while循环生成数字直到产生没有生成过的数字。