面相对象编程的三个特性:封装、继承、多态
所有编程语言都会操作内存中的元素,java通过对象的引用来操作对象
创建一个String引用,代码示例:
String s;
上面的代码只是创建了一个String对象的引用,变量s没有进行初始化,并没有指向任何对象。java中使用new来创建对象,代码示例:
String s = new String("abc");
boolean、char、byte、short、int、long、float、double这些都是基本数据类型,基本数据类型不需要使用new关键字来创建对象,直接存储值,存储在栈内存内。java直接确定了每种基本类型的内存占用大小。
| 基本类型 | 大小 | 范围 |
|---|---|---|
| boolean | ||
| char | 16bits 2字节 | 0~2^16^ -1 |
| byte | 8bits 1字节 | -2^7^ ~2^7^-1 |
| short | 16bits 2字节 | -2^15^ ~2^15^-1 |
| int | 32bits 4字节 | -2^31^ ~2^31^-1 |
| long | 64bits 8字节 | -2^63^ ~2^63^-1 |
| float | 32bits 4字节 | -2^31^ ~2^31^-1 |
| double | 64bits 8字节 | -2^63^ ~2^63^-1 |
有时候需要将int这样的基本数据类型转换为对象,而每个基本数据类型都有一个与之对应的类,这些类被称为包装类
位运算符包含有
| 按位或 | | | a|b,表示两个数据对应位都为0,则结果该位为0,否则为1 |
|---|---|---|
| 按位与 | & | a&b,表示两个数据对应位都为1,则结果该位为1,否则为0 |
| 按位非 | ~ | ~a,表示若a的对应位为0,则结果该位为1,否则为0 |
| 按位异或 | ^ | a^b,表示a,b两个数据对应位相同,则结果该位为0,否则为1(如果 a^b的结果为c,那么 c^b的结果就是a,可以使用异或来进行变量值互换操作 ) |
内存分配
java程序中的基本单位是类,类的两个基本成员时变量和方法
使用class关键字来描述一种新的对象。在class关键字的后面紧跟类的名称。
class MyClass {
}
上例中,引入了一个新的类型,我们可以通过new关键字来创建一个这种类型的对象,创建对象的过程称为类的实例化
MyClass myClass = new MyClass();
在方法中可以存在两种元素:方法和字段
实现多态的机制是父类引用指向子类对象,而程序调用的方法是在运行期才动态绑定的,是属于运行期的行为,而不是编译期的行为
多态主要分为引用多态和方法多态
引用多态:父类引用指向子类对象,也可以指向本类对象
方法多态:创建本类对象时,方法调用为本类方法;创建子类对象时,方法调用为子类重写的方法或者子类继承的方法
多态的必要条件:继承,重写
本文由 mdnice 多平台发布