2017国庆假期学习总结
从下定决心要开始学习Java开始,我状态进入得算比较快。3号装上了J2SE 9,后来又装上Eclipse,发现9不支持Eclipse,换上8。开始用的是Notepad++,但毕竟不如其它IDE全面,又试了NetBeans,最后定下来要使用Eclipse,配置好环境变量,算是进入正轨了。
这篇随笔自上而下地梳理一下这几天学到的东西。
计算机系考研专业课四门:数据结构、计算机组成原理、操作系统以及计算机网络,在以上课程基本原理的基础上,利用编程语言编写代码控制计算机行为,可以完成预期的任务。
从前用Matlab以及Fortran,都是面向过程编程,这几天花时间最多的地方,可能就在建立面向对象编程的概念了。Java语言是编程语言中应用较广泛的语言,采用面向对象的程序设计思路,与面向过程的程序设计的最主要区别是,它将任务分成若干个具有一定状态和行为的对象,对象之间相互发生关系,达到完成预期任务的目的;而面向过程程序设计则按照任务完成的先后顺序组织代码。面向对象主要应用在大型任务场合,主要优点是其拥有良好的封装性,各个类内部变量不会影响其它类的变量,也不会受其它类内部变量的影响。
一个Java程序由许多个类组成,最好将每个类放在一个.java文件中,如果多个类放在一个.java文件,里面应只有一个public类,public类应与文件名同名。可以调用一个包(package)下的所有类。
类的格式:
public class Car{ }
或者:
class Car{ }
一个类中有成员变量(对应对象的状态)和方法(对应对象的行为),以及一个或多个构造器。
成员变量、方法和构造器的格式
成员变量:
private int color; private int speed; //int是基本类型 private Engine engine;//Engine属于引用类型
方法:
public double getSalary{ }
一个特殊的方法是main方法,这是Java程序的入口,任何Java程序的代码都是从这个方法开始执行的。
public static void main(String[] args){ }
构造器:
public static Car{ }
构造器用于new时使用,建立一个新的对象,必须有。
以下面的方法为例
public static void main(String[] args){ }
public、private、protected称为关键字,public表示任何类都可以访问该成员(或方法),private表示仅该类自身可以访问该方法,protected表示该类自身及其子类可以访问该变量(或方法),没有修饰则表示同一个包下的类都可以访问该成员变量(或方法)。
static表示静态静态变量或者静态方法。由于类通常会实例化为多个不同的对象,如果不加static,则系统会给每个对象的变量分配(方法会分配空间吗?),但如果加上static,则只会为其分配一个空间,所有对象里对该变量的操作均会改变该变量(即所有对象的static变量都指向同一个内存空间;static变量只执行一次)。
void表示返回值为空,方法可以有返回值,类没有。
main为方法名,main表示主方法;
String表示输入参数的类型。类中、方法中的参数都需定义类型,Java提供了8种基本类型以及引用类型。8种基本类型包括整型(byte、short、int、long),浮点型(float、double),字符类型和布尔类型;引用类型包括字符串(?)、数组等,对象引用也属于引用类型。
args表示参数名,参数名、类名命名采用驼峰命名法,即名字第一个字母小写,单词首字母大写(如testMyFirstExample)。
一个类中可以有多个同名的方法,但输入参数需不一样;构造器可以有多个,同样输入参数也要不一样。
可以在类的内部使用本类的方法和变量。
对象里的变量存储在堆中(存的实打实的变量),对象变量(对象的引用)存储在栈中(存的地址)。
栈(stack)先进后出,队列(queue)先进先出。
泛型的使用:泛型用在类中叫做泛型类,泛型类将数据类型作为参数传入类中:
public class Point<T>{ //Point是类名,<T>是泛型参数类型 private T point; }
传给泛型的参数类型必须为引用类型,如为基本类型需将其包装成引用类型,如int->Integer。
泛型也可应用在方法中,不要求该方法所属的类为泛型类。
public static <T> void getResult(T[] objects){ if (objects != null) {
for(T element : objects){ System.out.printf("%s",element); } } }
大致总结如上,写出来思路清晰多了。