首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

编程学习:Java(一)上篇

标题中说的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。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181011G236PL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券