编程方法学 - 公开课学习笔记(二)

时间:2023-02-04 23:11:02

第4课:计算机科学发展史 (2011.7.12)

CS(Computer Science):Science of problem solution of computing/computatioon method.关键在于problem solution.而编程只是其中一个过程。

machine language:有芯片所定义,对应0,1二进制。high-level language,例如C,C++,Java等等。要让高级语言被机器语言所理解,这个过程就是compilation(编译),需要编译器,例如eclipse。

程序员编写源代码(source code),而机器理解的0和1是目标代码(object code),源代码可能要引用其他的库,也就是它的目标代码和其他的目标代码一起,组成一个大的目标代码成为执行文件(executable file)或者应用。对于Java需要VM的语言,编译后,形成*.class文件,作为一个中间语言(Java Bite代码),而非0,1的机器代码。与关联的类的中间语言一起组成一个Jar文档(jar:java archive),同样也是中间语言。VM(java的JVM)知晓这些中间语言,将其在机器上允许。引入中间的虚拟器,为了适配多种机器,例如Linux,Windows等等。

在面向对象的编程中,类用于encapsulation of some behavior and data封装程序的行为。

该课程介绍了java的基本概念,包括类,superclass,subclass,instance,object等概念。原来这门也可以作为Java的入门学习课程。

 第5课 变量 (2011.7.12、15)

变量:name,type,value。名字由字母或下划线开始,后继加入字母、数字、下划线。在选择int和double是,是how many(1后面是2)和how much(1.0后面并没有确切的下一个数)的选择,一般情况下在定义变量的时候,应给予初始值赋值,例如int x=0;。

接着介绍了一些对象的构造,方法调用等等这些基本JAVA知识,我已经记不起来我是如何学到的。这一课,迅速掠过。

中间去了深圳一趟,去参观了便携产品创新展(差不多这个名字),发现比较冷淡,来的很多是买生产工具,而不是最终产品。期间到会议室听了几分钟Android的开放API,是*人来讲,反正整个会场就会议室有凳子。下大雨,居然滴水……无语。接着到旁边的展会看红酒。从这些展看到,真是很淡,如果不是国内IT淡,就是深圳淡了。

第6课:操作符 (2011.7.16)

  介绍整型和real之间的操作,对于“/”,整型之前的除,是去余数,不是四舍五入,例如5/2=2,要获得余数,用求余操作符号(%),有时我们可能会不太注意,int x=5; double y=5/2; 那么y实际上是2.0,是否进行整型计算是根据当前的计算,即5/2=2,然后根据类型变换为2.0,在这个例子中,我们可以使用double y=(double)x/2,当然我们一般都是写成x/2.0,对于Java,从real变成整型,需要截位处理,应当表明类型变化以示说明,而整型边real,由于精度没有改变,所以可以不专门进行CAST(类型变化)说明,但是应当鼓励表明类型变化,在实际编程中,例如我们求平均值时,不是2,而是一个num,或者一个常量NUM,这是容易忽视。

  常量定义static final PI=3.14159。除了在程序中能更明确地表达含义外,如果需要更改,只需要修改定义,例如,如果我们精度降低,只要将数值改为3.14就可以。final表示此值不能改变,避免他人在程序中重新赋值。static表示无论对象,都使用同一存储区域,这个我在C或者method那里用的比较多,一个改变了,其他也变化。如果这个常来不对外使用,则private static final *******。

  接着介绍了boolean和逻辑操作符,并将了变量定义的有效范围。

  对于if,一般来讲,只有一条语句是不需要{},但是为了避免错误,最好加上。介绍了if,swith,for,while的用法。

相关链接:我的与编程思想相关的文章