对象与类
对象是实体,需要被创建,可以为我们做事情美
类是规范,根据类的定义来创建对象
类:(模板) 一类对象的统称
对象:(实体) 这一类具体化的一个实例
一个类可以产生多个对象
- 对象=属性+服务
OOP(面向对象程序设计语言)特性:继承、封装、多态
- 一切都是对象
- 程序就是一堆互相发送消息的对象
- 每个对象有自己的存储空间,里面是其他的对象
- 每个对象都一个类型
- 所有属于某个特定类型的对象可以提供相同的服务
创建对象
对象变量是对象的管理者
- 成员变量在定义的地方就可以给出初始值
- 没有给出初始值的成员变量会自动获得它所对应类型的0值
- 对象变量的0值表示没有管理任何对象,也可以主动给null值
- 定义初始化可以调用函数,甚至可以使用已经定义的成员变量
class Person<类名>{
类体;
//实例成员,访问时使用实例成员方法--》引用 对象 . 属性
public String name;//属性 成员变量 实例成员变量
public int age;//
//static 静态成员变量 存于方法区
//静态成员变量访问时使用类名 . 属性
//静态成员方法的调用 通过 类名 . 方法 进行调用
public static int count = 10;
Public static final int SIZE = 30;//方法区
//final修饰之后,放在哪个区域不一定
Public final int SIZE2 = 20;
//行为 方法 实例成员方法
public void eat(){
System.out.println(name + "吃饭!");
}
}
public class Test{
public static void main(String[] args){
Person person = new Person();//创建对象person
person.name = "张飞";
Person.age = 99;
person.eat();
}
- 被static所修饰的不管是成员还是方法(属于类,只有一份 存于方法区),他的调用或者访问都只需要使用类名 .
也就是说,所有被static所修饰的不管是方法还是成员,都不依赖于对象
注意事项: - new 关键字用于创建一个对象的实例.
- 使用 . 来访问对象中的属性和方法.
- 同一个类可以创建多个实例.
类的成员:
实例成员变量:如果没有赋值,那么他的默认值就是自己所对应的0值
引用类型-》null 数组 类 String
简单类型-》0 char ‘\u0000’ boolean = false;
成员变量未初始化,打印其长度会产生空指针异常
成员变量
类定义了对象中所具有的变量,这些变量称作成员变量;每个对象都有自己的变量,和同一个类的其他对象是分开的。
方法与成员变量
- 在方法中可以直接写成员变量的名字来访问成员变量;
- 方法是通过对象来调用的;
- this是成员方法的一个特殊的固有的本地变量,它表达了调用这个方法的那个对象;
- 调用方法通过运算符 . 调用某个对象的方法;
- 在成员方法内部直接调用自己(this)的其他方法;
本地变量
- 定义在方法内部的变量
- 本地变量的生存期和作用域都是方法内部
- 成员变量的生存期是对象的生存期,作用域是类内部的成员方法
构造方法
- 如果有一个成员函数的名字和类的名字完全相同,则在创建这个类的每一个对象的时候都会自动调用这个函数–》构造方法
- 这个函数不能有返回类型
方法重载
- 一个类可以有多个构造方法,只要他们的参数列表不同
- 创建对象的时候给出不同的参数值,就会自动调用不同的构造方法
- 通过this()还可以调用其他构造方法
- 一个类里的同名但参数表不同的方法构成了重载关系