您的位置:首页 > 编程语言 > Java开发

Java表达式、流控制、数组、字符串和类、对象、包、接口——Java学习笔记(三)

2014-10-07 21:26 204 查看
Java表达式、流控制、数组、字符串和类、对象、包、接口
1. 表达式和流控制

1) 变量

若类的某个成员是基本数据类型,即使没有初始化,Java也会确保它会获得一个默认值。基本数据类型的默认值如下表所示:

基本类型

默认值

boolean

false

char

‘\u0000’ (null)

byte

(byte) 0

short

(short) 0

int

0

long

0L

float

0.0f

double

0.0d

2) 运算符

算术运算符:+, -, *, /, %,++, --

关系运算符:>, <,<=, >=, ==, !=

布尔逻辑运算符:!,&&, ||

位运算符:>>,<<, >>>, &, |, ^, ~ 依次为右移,左移,右移且左边空出的位以0填充,即是无符号右移,按位与,按位或,按位异或,按位非

赋值运算符:=, 及其扩展赋值运算符如+=

条件运算符:?:

3) 分支结构和循环结构

分支语句:if-else, break,switch, return

注:Java 7的switch分支语句:在Java 7之前,switch语句不支持使用字符串表达式类型,switch中的case语句只能允许后面跟基本数据类型的常量,例如byte, char, short, int, long, float, double数值类型。在Java 7中,由于switch语句增加了对字符串条件表达式的支持,在程序设计时可直接在case语句中用字符串常量。

循环语句:while, do-while,for, continue

2. 数组和字符串

1) 一维数组

2) 多维数组

3) 字符串

字符串是字符的序列,有两种类型的字符串,一种是创建以后不需要改变的,成为字符串常量,在Java中String类用于存储和处理字符串常量;另外一种字符串是创建以后,需要对其进行改变的,称为字符串变量,在Java中StringBuffer类用于存储和操作字符串变量。

4) 可变字符串

String对象是常量字符串,一旦被初始化和赋值,它的值和所分配的内存就被固定了。如果硬要改变它的值,将会产生一个包含新值的新String对象。这就是String对象会消耗掉很多资源的原因。

注:String和StringBuffer的区别

Java平台提供了两个类String和StringBuffer,它们可以存储和操作字符串,即包含多个字符的字符数据。String类提供了数值不可改变的字符串;而StringBuffer类提供的字符串可进行修改,当知道字符数据要改变时就可以使用StringBuffer。例如,可以使用StringBuffer来动态构造字符数据。

3. 类、对象、包和接口

1) 类,构造方法,类成员,方法重载

2) 继承

3) 多态和动态绑定

泛型

4) 抽象类和抽象方法

有时在类库开发中要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该行为,取而代之要在子类中实现该方法。知道其行为的其他类可以在类中实现这些方法。

当一个类被声明为abstract时,这个类被称为是抽象类。所谓抽象类是没有具体实例对象的类。针对这个问题,Java专门提供了一种机制,名为“抽象方法”。它属于一种不完整的方法,只含有方法的声明,没有方法的主体。

注意:所有的抽象方法都必须存在于抽象类之中。抽了抽象方法,抽象类也可以具有具体的数据和方法。

abstract class和接口的区别是:声明方法的存在而不去实现它的类被叫做抽象类,它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该方法的情况。不能创建abstract类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造方法或抽象静态方法。abstract类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类。接口是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有程序体。接口只可以定义static
final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义所有这种接口的方法。然后它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。引用可以转换到接口类型或从接口类型转换,instanceof运算符可以用来判断某对象的类是否实现了接口。

5) 访问控制符

公共访问控制符public:一个类被声明为公共类,表明它可以被所有的其他类所访问和引用。

默认访问控制符:假如一个类没有访问控制符,说明它具有默认的访问控制特性,即该类只能被同一个包中的类访问和引用,而不可以被其他包中的类使用,这种访问特性被称为包访问性。

私有访问控制符private:用private修饰的属性或方法只能被该类自身所访问和修改。

保护访问控制符protected:用protected修饰的成员变量可以被三种类所引用:该类自身,与它在同一个包中的其他类、在其他包中的该类的子类。

6) 包

7) 接口

接口的主要作用是可以帮助实现类似于类的多重继承的功能。

定义接口和定义类非常相似,实际上完全可以把接口理解成为一种特殊的类,接口是由常量和抽象方法组成的特殊类。

接口的属性都是用final修饰的常量;

接口中的方法都是用abstract修饰的抽象方法;

接口可以继承接口。抽象类可以实现接口,抽象类是否继承实体类的前提是实现类必须有明确的构造方法。

8) 静态变量

静态变量

静态方法

9) 关键字final

final类:不能再被继承,这样做是处于安全考虑

final方法:被标记为final的方法不能被覆盖

final变量:被标记为final的变量表示该变量为常数

10) 内部类

内部类允许一个类定义被放到另一个类中定义。内部类是一个有用的特征,因为它们允许将逻辑上同属性的类组合到一起,并在另一个类中控制一个类的可视性。

11) 反射API
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐