对象和类的概念
对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
类是一个模板,它描述一类对象的行为和状态。是对象的抽象
类有哪些组成呢?
生活中:当我们拥有类时,一定对这个类定义了明确的特点和特征,还有行为
程序中:程序中拥有类时,也有特征和方法,只是换了个称呼,叫属性和方法
类与对象的定义和使用
1、创建类
class关键字定义类
Class 类名{
//类中的成员
属性 (变量) ;
行为 (方法) ;
}
Ex:里面创建一些属性进去,以便后面调用
2、对象的创建
使用关键字new创建对象
类名 对象名= New 类名();
类中的成员(封装)
- 属性:共同的特点特征,是直接在类中声明的变量
- 方法:共同的行为,是在类中声明的方法
- 构造方法:主要用途就是初始化类中的属性
特点:
- 与类同名
- 没有返回值且不能写Void
- 在创建对象时自动调用
调用新实例时,New后面要写的类名为什么要带括号呢?(就是创造一个新的构造方法)
Person()其实就是一个以类为名称的方法,在类诞生之初就默认存在,这个方法唯一的不同就是没有返回参数,这种方法叫做“构造方法”
构造方法的作用,就是造对象,目的就是初始化
当类中无构造方法时会自动构造无参方法,当类中有 有参的构造方法 ,那么JVM则不会构造无参方法。
多态的体现
构造方法的重载
一个类中可以有多个方法,方法名相同,参数列表不同,这叫做方法的重载。
参数列表:参数类型、参数个数、参数顺序
This关键字:
就是指当前类的对象。也就是说,哪个对象调用了方法,那么这个方法内的this指的就是那个对象
This的用法
- this. 用于调用当前对象的成员(方法或者属性都可以)
- this() 用于调用当前对象的其他构造方法(只能写在构造方法里面,只能写在第一行)
static关键字
- 如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象
- static成员的最常见的例子是main(),因为在程序开始执行时必须调用main(),所以它被声明为static
- 静态方法内部不能有非静态方法,而非静态方法内是可以用静态方法的。
static用在类修饰符前面代表类为静态类,无法实例化
static用在变量前代表变量为静态,必须使用类名.变量来访问变量而不能实例化对象去访问
static用在方法前代表方法为静态,也是必须使用类名.方法名才能访问,不能用实例化对象去访问
- 声明为static有以下几条限制:
它们仅能调用其他的static方法。
它们只能访问static数据。
它们不能以任何方式引用this或super