类:
表示一类事物的抽象概念。规定了该类中所有对象具备的属性和行为。
类中的属性:成员变量/属性/实例变量
类中的方法:成员方法/实例方法
(1)定义类的语法:
class<类名称>{
//若干属性
//若干方法
}
(2)类中方法定义:
[public] 返回值 方法名称(方法参数){
//方法体代码
[return]
}
对象:
对象是类中的一个具体的,可以使用的事物。先有类,而后根据类产生对象。对象具备的所有属性与行为,在类中都进行了验证定义。
static关键字:
-
修饰属性
(1).static属性对于所有对象都是共享的,只要有任意一个对象修改此属性值,,其他对象立即可见。(2).static属性与对象实例化无关,直接可以通过类名称访问(推荐使用类名称访问类属性).
(3).在方法中无法定义静态变量,静态变量只能在类中定义,归类所有。
实例变量与实例方法通过对象访问,类属性通过类直接访问。
class Test{
//成员变量,存储在堆内存中
int age;
//静态变量,存在方法区
static int count;
}
- 修饰方法
(1)在类中被static修饰的方法也称为类方法/静态方法,直接通过类名称调用。
(2)在静态方法中无法访问类中的非静态域(属性以及方法);在静态方法中可以调用类中的静态域(属性以及方法);在普通方法能调用类中静态属性/静态方法。
(3)在类中仅被final修饰的成员变量仍然在堆上存储,并且与对象强相关. 在类中声明常量一般使用static final,保证常量只存储一次。
class TestDemo{
public int a;
public static int count;
public static void change() {
count = 100;
//a = 10; error 不可以访问非静态数据成员
}
}
- 修饰代码块
- 修饰类
构造方法:(完成属性初始化操作)
在对象实例化时由系统自动调用,用于完成对象的初始化操作。
Person per = new Person();
在产生对象过程中:为对象在堆上分配空间,系统调用该类的构造方。
构造方法的语法规则:
-
构造方法必须与类名称相同。
-
构造方法没有返回值类型声明。
-
若类中没有明确定义构造方法,由系统生成一个无参构造。
-
构造方法也可以重载,只是参数个数不一样。
this关键字:表示当前对象的引用
1. this修饰属性
表示访问类中的成员变量。若要在普通方法或构造方法中访问类的实例变量,加上this关键字。
public Person(int age){
//直接从类中找名称为age的属性
this.age=age;
System.out.println("一个参数的构造方法");
}
2.this修饰方法
- 调用普通方法
- 调用构造方法
this(参数)
a.this调用构造方法必须放在构造方法首行;
b. this构造方法调用不能成环
3.this 表示当前对象的引用