(变量、package及import、javabean、this)
一、变量
成员变量:包括类变量(static修饰)和实例变量(无static)
成员变量,可以先使用后定义,局部变量必须先定义而后才能使用.
此处参考java编程思想第5章初始化部分——p94页及之后,
变量会在任何方法(包括构造器)被调用之前得到初始化
某个类中有静态变量,new此类的对象,只是new它的非静态成员
静态初始化只在Class对象首次加载的时候进行一次
二、package和import及其他
package语句必须是文件中的第一行非注释程序代码。
基本语法不做赘述,此处摘录一段
Java解释器的工作程序如下:首先,它找到环境变量CLASSPATH。从根目录开始,解释器会寻找包名,并将每个点号(句点)替换成一个斜杠,从而生成从CLASSPATH根开始的一个路径名(所以package foo.bar.baz会变成foo\bar\baz或者foo/bar/baz;具体是正斜杠还是反斜杠由操作系统决定)。得到的路径会与CLASSPATH中各个不同的项相连接,解释器就在这些目录中查找与你所要创建的类名称相关的 .class文件。
对于初学者来说:可以简单理解为指定搜索路径,使得你可以使用javac和java命令找到你所需要编译的文件。
import:当A类和B类不在同一个包中,若A类需要使用到B类,此时就得让A类中去引入B类.
语法格式: import 需要导入类的全限定名;
类的全限定名称: 包名.类名; 例如:import java.util.Arrays; 或者 import java.util.*;
其他:静态导入 例如 import static utils.Print.print;
则可以直接使用自己编写的工具类中的静态print方法 print("123");
查看interview项目,具体git链接待发布。
三、JavaBean规范
JavaBean规范: JavaBean 是一种JAVA语言写成的可重用组件(类).
必须遵循一定的规范:
1):类必须使用public修饰.
2):必须保证有公共无参数构造器,即使手动提供了带参数的构造器,也得提供无参数构造器..
3):包含了属性的操作手段(给属性赋值,获取属性值).
分类: 1):复杂:UI,比如Button,Panel,Window类.
2):简单:domain,dao,service组件,封装数据,操作数据库,逻辑运算等.(封装有字段,并提供getter/setter)
成员: 1):方法:Method 2):事件:event 3):属性:property
属性: 1):attribute:表示状态,Java中没有该概念,很多人把字段(Field)称之为属性(attribute).不要把成员变量叫做属性
2):property: 表示状态,但是不是字段,是属性的操作方法(getter/setter)决定的,框架中使用的大多是是属性.
封装应该把对象中信息隐藏起来(把类中的字段全部使用private修饰起来,其他类不能直接访问).为了能让外界(其他类)访问到本类中的私有字段成员,我们专门提供getter以及setter方法.
字段: private String name;
getter方法: 仅仅用于获取某一个字段存储的值.
//去掉get,把首字母小写,得到name1.此时name1才是属性.
public String getName1(){ return name;//返回name字段存储的值}
如果操作的字段是boolean类型的,此时不应该叫做getter方法,而是is方法,把 getName 变成 isName.
setter方法: 仅仅用于给某一个字段设置需要存储的值.
public void setName1(String n){ name = n;//把传过来的n参数的值,存储到name字段中}
每一个字段都得提供一对getter/setter.以后使用Eclipse工具之后getter/setter都是自动生成.
在JavaBean中有属性这个概念,只有标准情况下字段名和属性名才相同.
四、this
表示当前对象,
this主要存在于两个位置:
构造器中: 就表示当前创建的对象.
方法中: 哪一个对象调用this所在的方法,那么此时this就表示哪一个对象.
当一个对象创建之后,JVM会分配一个引用自身的引用:this.
使用this:
① 解决成员变量和参数(局部变量)之间的二义性,必须使用;
② 同类中实例方法间互调(此时可以省略this,但是不建议省略)。
③ 将this作为参数传递给另一个方法;
④ 将this作为方法的返回值(链式方法编程);
⑤ 构造器重载的互调,this([参数])必须写在构造方法第一行;
⑥ static不能和this一起使用; 当字节码被加载进JVM,static成员以及存在了. 但是此时对象还没有创建,没有对象,就没有this.
多练习,注意eclipse快捷键提高效率。