标题中说的Java,不仅仅指的是编程语言,而且包括了与Java相关的其他技术,实际上,最终的目标是用这些工具做一个网站(我打算做的日程管理web应用可能就是这个网站)。
web server:tomcat
所用IDE:eclipse
时间:2018/10/3
01
—
ecplise的新建操作
首先,如果要创建一个web项目,那么新建步骤如下:
在project explorer的空白处new一个project
选择类别,对于web项目,应该选择Web——>dynamic web project
输入project的名字,创建工程完毕
创建的工程中默认包含两类文件夹:
Java Resources:是Java相关文件和程序的容器,只能在这个文件夹下新建package、class、interface、servlet等。
WebContent:是Web相关文件和程序的容器,只能在这个文件夹下新建HTML文件、JSP文件等。
package:是对程序做一个集合目录。通常在Java Resources里的src下新建。(如果不是默认即default包的话,其他包中的程序通常要加上package:包名这个申明)
class:一个class代表一个Java文件,可以说class是Java中每个程序的基本组成单位,只有包含main函数的文件才能作为应用程序运行。
HTML、JSP文件都属于web类文件,直接在WebContent新建即可。
import:是对各类程序、文件的引用。除了默认default包之外,在其他的包中都要是import 包名.文件名的格式。(调用类的一方和被调用的类一方可以在同一个包中:在同一个包中时,可以省略import导入,直接引用即可)
02
—
Java基础
需要理解记忆的地方:
数组定义格式:
[]在数组名的前面还是后面无碍;第一行是申明数组名(数据类型+数组名[]),第二行是申请空间赋值给数组名这个地址(new 数据类型[个数])。
对字符串的操作:
从这里可以看出String实际上是一个类(类可作为一种数据类型),String是特有的高级数据类型,其他的数据类型如int、char、double并没有用类来定义数据类型。
本例中就是String作为类定义了一个str的实例,然后通过调用类中的方法(方法其实就是类中定义的函数,诸如:length()、indexOf()、charAt()、equals()、substring(),以及valueOf()转换数据类型的方法)来操作字符串。
PS:Java中严格区分大小写,而且很多函数命名通常类似驼峰命名法(单词首字母大写)。注意下拼写。
03
—
类:class(封装)
类中一旦包含了main函数,就代表该类可作为应用程序来运行。也就是说:类要作为应用程序来运行,必须包含main函数。同时包含main函数的类一般就是引用其他类的一方。
访问修饰符:private、protect、public
这些修饰符所修饰的成员变量的可见性如下表所示(打勾处为可见):
强调:类中的私有变量即private型变量,仅仅只在该类中可见,其他类中都不可见这种私有变量。public型即公有变量则正好相反,倘若不写,默认为public型。
实例与构造方法的关系(下面说的引用方/被引用方都指的是对应的类):
引用方中如果构造了一个实例,那么被引用方对应地也要构造一个特殊的方法,这个方法必须和被引用方【也就是自身的类名】同名:可以理解为定义了一种自定义的特殊数据类型,既然是自定义,自然要用自身的类名,本质上和其他数据类型定义的方法【方法也就是函数】没啥区别。
构造的实例无非就两种情况:传参/不传参,那么对应的引用方/被引用方自然也就有自己的传参/不传参的写法。
关系如下图所示:
总而言之:每个实例和每个构造方法之间都是一一对应的关系,缺了肯定不行。
特殊情况【仅限于每个实例都不传入参数的情况】:构造了实例但是没有构造方法依旧正常运行,是因为系统对于不传参数的实例们统一默认构造了方法,只是没有显式定义出来而已;但是一旦有一个传参的实例,那么系统的默认构造方法就失效了。
对于不传参的实例们,系统的默认构造方法(前提是没有任何一个传参的实例存在)和显式定义的构造方法(仅能定义一次)都可以达到一对多的作用(即一个构造方法就可以对应若干个不传参的实例)。
最佳解决方法:其实上面这一大段只是为了便于理解,实际上解决这些问题的最简单实用的方法就是:在被引用的类中先直接显式定义一次对应不传参实例的构造方法,然后有传参实例就对应着写构造方法,没有就不写。如此一来,显式定义一次就能解决everything。
领取专属 10元无门槛券
私享最新 技术干货