类的基础
Posted 乌龟王八蛋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的基础相关的知识,希望对你有一定的参考价值。
类的组成
面向对象是一种编程思想,而 Java 的设计则很好的诠释了这一概念
一个类由属性、方法两部分组成
- 类变量:类本身具有的属性
- 类方法:类本身具有的方法
- 实例变量:类的对象具有的属性
- 实例方法:类的对象具有的方法
类变量、实例变量可以统称 成员变量,而类变量也可以称作 静态变量、静态成员变量
类方法、实例方法可以统称 成员方法,而类方法也可以称作 静态方法、静态成员方法
简单理解为,类属性、类方法是类本身所具有的;实例属性、实例方法依赖于类的对象
类的组成部分 示例
public class Person {
/* 类变量 */
private static String name;
/* 实例变量 */
private Integer age;
/* 类方法 */
public static void eat(String food) {
}
/* 实例方法 */
public void sing(String sing) {
}
}
成员变量与局部变量
类的成员变量与方法的局部变量存在区别
书写位置:成员变量位于类中、方法体外;局部变量位于方法体、代码块中
内存位置:成员变量位于堆内存;局部变量位于栈内存
类型默认值:成员变量存在默认初始值
;局部变量不存在
作用域:成员变量作用域整个类;局部变量只在方法体、代码块中有效
生命周期:成员变量自类、对象的创建到销毁;局部变量随着方法、代码块的执行完毕而释放
类的实例对象
类在实例化之后,可以得到该类的对象,称为 实例对象,实例化的关键字是 new
Animal animal = new Animal();
new
在堆内存中,为实例对象开辟 新的存储空间,需要格外注意
当一个类实例化之后,其中的实例变量、实例方法才可以被调用
而对于静态成员变量、方法,则无需类的实例化,区别在于关键字 static
被 static
声明的属性、方法,在类加载时创建,属于类本身,由所有实例对象共享
类在实例化以后,可以获得一个该类的对象,并操作其中的实例属性、实例方法
类的构造方法
在类中,存在一个特殊的方法,构造方法
构造方法存在以下几点
- 构造方法名与类名保持一致
- 构造方法不存在返回值,也不应该有返回值
- Java默认提供无参的构造方法,若重载了有参构造,则不再提供
- 构造方法可以私有化,应用于特定的场景
需要注意的一点,若重载了构造方法,必须手动声明无参构造
this 关键字
this
关键字指代当前实例对象,存在三种用法
- this. 属性名:指代当前的实例属性,见于构造方法的重载
- this. 方法名:指代当前的实例方法
- this():用于构造方法中,调用其它的构造方法,置于构造方法首行
static 关键字
static
关键字用于修饰类变量、类方法、代码块以及内部类,意为 静态
静态的属性、方法,在类加载时一并创建,优先级高于实例对象的属性、方法
- 简单的说,静态属性、方法不能访问非静态的属性、方法,反之则可以访问
- 静态的属性在类加载时即初始化,该类所有的实例对象则共享一份静态属性
- 静态代码块存在于类中,在类加载时执行,仅执行一次
简单的理解为,static 修饰的类属性优先创建,被多个实例对象所共享使用,数据唯一
以上是关于类的基础的主要内容,如果未能解决你的问题,请参考以下文章