一、java语言的特性:面向对象、多线程、与平台无关、简单、高效、安全、健壮、可移植、解释性、动态、高性能等
面向对象的基本特征:封装、多态、继承
封装:把客观存在的事物封装成一个抽象的类,把成员变量(事物的属性)和成员方法(事物的行为)封装在类中。
通过四种修饰符public、protected、private和default设置访问权限。如下图
→ | 当前类 | 当前包 | 子类 | 其它包 |
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
多态:可以理解为事物在不同情况下的不同行为。即类的实例在不同情况下的不同表现形式。
重新和重载是多态的两种表现形式:
重写是指在子类和父类之间,子类重新父类中已存在的方法。其中该方法的修饰符、返回值类型、方法名及参数列表和父类中的完全一致。
重载是指在同一个类中,定义多个方法名相同,但是参数列表不同的方法。
继承:指可以让某个类型的对象获得另外一个类型对象的属性和方法。即子类可以访问父类的非private修饰的成员变量和成员方法。
子类可以重写父类中的方法。
也可以在构造方法中通过super(参数列表)调用父类中的构造方法。
通过super.变量名/方法名调用父类中的成员变量和成员方法。
还可以在构造方法中通过this(参数列表)调用本类中其它的构造方法。
注:super(参数列表)、this(参数列表)必须放在构造方法的首行,且二者不能共存。
二、Java程序的基本结构:包、类、方法、标识符、关键字、语句、注释
标识符:由数字、字母、下划线及$符号组成,不能以数字开头且字母区分大小写。
关键字:常用的关键字如下
package、
import、
public、protected、private、abstract、class、extends、implements、interface
static、final、byte、short、int、long、float、double、char、boolean
new
super、this
void、main、throws
try
for、if、else、do、while、switch、case、default、break、continue、return
catch
throw
finally
成员变量和局部变量的区别:
1、成员变量可以用修饰符(public、protected、private、static)修饰,局部变量不可,二者都可定义成final型。
2、成员变量会有默认初始值,局部变量不会自动初始化,故局部变量须先初始化(赋值)后使用,否则编译报错。
3、成员变量存贮在堆内存中,局部变量存贮在栈内存中。
另:方法外部不能有纯粹的赋值语句,发放内部可以;
成员变量可以通过初试化函数(构造方法)或块语句进行显示初始化(赋值)
public class var(){
public String str1 = "str1";//成员变量可以用修饰符修饰
public String str2;//成员变量会有默认初始值 此处为null
str = "str";//方法外部不能有纯粹的赋值语句 此处编译报错
//通过构造方法对成员变量进行显示初始化操作
public var(String str1, String str2){
this.str1 = str1;
this.str2 = str2;
}
{//通过快语句对成员变量进行显示初始化操作
str1 = "str1";
str2 = "str2";
}
public void doPrint(){
String str;//局部变量不能用修饰符修饰
System.out.println("str="+str);//局部变量在使用前必须显示初始化(赋值) 此处编译报错
str = "str";//方法内部可以有纯粹的赋值语句
System.out.println("str="+str);
}
}