Java-005类与对象
本帖最后由 moc 于 2018-12-21 19:50 编辑1、属性和方法
类是对现实事物的抽象,是对方法和属性的封装。
属性: 即类中的变量,包括:
局部变量: => 在方法、构造方法或者语句块中定义的变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
成员变量: => 在类中,方法体之外的变量定义。在创建对象的时实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
成员变量: => 类变量也声明在类中,方法体之外,但必须声明为static类型。
构造方法:
格式:
A:方法名和类名相同
B:没有返回值类型,连void都不能有
C:没有返回值
每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。
与C++类似,如如果我们给出了构造方法,系统将不再提供默认构造方法。
2、关键概念
Student s = new Student()执行的过程:
(1)把Student.class文件加载到内存
(2)在栈内存为s开辟空间
(3)在堆内存为学生对象申请空间
(4)给学生的成员变量进行默认初始化。null,0
(5)通过构造方法给成员变量进行初始化。刘意,30
(6)对象构造完毕,把地址赋值给s变量
匿名对象:
(1)没有名字的对象
(2)应用场景
A:调用方法,仅仅只调用一次的时候。
b:可以作为实际参数传递。
this关键字:
代表当前类的本身的引用。
static关键字:
(1)静态含义:
可以修饰成员变量和成员方法。
(2)静态的特点:
A:随着类的加载而加载
B:优先与对象存在
C:被类的所有对象共享
D:可以通过类名调用
(3)静态的内存图
静态的内容在方法区的静态区
(4)静态的注意事项:
A:在静态方法中没有this对象
B:静态只能访问静态
3、代码块
(1)用{}括起来的代码。
(2)分类:
A:局部代码块
用于限定变量的生命周期,及早释放,提高内存利用率。
B:构造代码块
定义在类的成员位置上,使用"{}"括起来的代码。
把多个构造方法中相同的代码可以放到这里,每个构造方法执行前,首先执行构造代码块。
C:静态代码块
定义在类的成员位置上,使用"{}"括起来的代码,只是多了一个static修饰。
静态代码块是类被加载的时候就会执行,静态代码块只会被执行一次,对类的数据进行初始化。
(3)静态代码块,构造代码块,构造方法的顺序问题?
静态代码块 > 构造代码块 > 构造方法
页:
[1]