java是面向对象编程
特点:
- 封装性
- 继承性
- 多态性
对象和类
- 类:类是一个模板,描述对象的行为和属性
- 对象:对象是类的一个实例,有属性和行为
public class Person{
//属性
String name; // 定义一个String类型的成员变量
int age;
String sex......
// 成员方法
void eat(){ // 定义一个eat()成员方法
int id =0 // 局部变量id
}
void run(){}
void sleep(){}
}
- 成员变量
对象的属性也称成员变量 - 成员方法
成员方法对应类对象的行为
- 在成员方法中可以调用类的其他方法,及类成员变量
- 在成员方法中定义的变量称为局部变量
- 如果局部变量和类成员变量同名,则方法中对此变量的访问以局部变量进行
权限修饰符 返回值类型 方法名(参数类型 参数名){
....方法体
return
}
//void 无返回值
例如:
public void getName(String name){
.....
}
构造方法
java编译器会为类提供一个默认构造方法
每个类都有构造方法,构造方法和类同名,一个类可以有多个构造方法
- 构造方法没有返回值
- 构造方法和本类同名
public class Puppy{
public Puppy(){}
public Puppy(String name){}
}
创建对象
对象可认为是一类事物中抽象出的某以特例
new
创建一个新的对象:
- 声明:声明对象的名称和类型
- 实例化:new
- 初始化:使用new创建对象时,会调用构造方法初始化对象
public class Puppy{
public Puppy(String name){
System.out.println("小狗的名字是 : " + name );
}
public void setAge( int age ){
puppyAge = age;
}
public int getAge( ){
System.out.println("小狗的年龄为 : " + puppyAge );
return puppyAge;
}
public static void main(String[] args){
// 创建实例化对象
Puppy myPuppy = new Puppy('tommy')
// 访问对象的方法
myPuppy.setAge(2)
//
myPuppy.getAge()
}
}
每个对象都是相互独立的,都有自己独立的内存地址,并且每个对象都具有自己的生命周期,当一个对象的生命周期结束时,对象就变成垃圾,java自带的垃圾回收机制处理。
对象的销毁
- 对象引用超出其作用范围
- 对象赋值为null
- 若不是被new出来的对象,可能不能被java垃圾回收机制识别,java提供了一个
finalize()
方法,被声明为protected
-
访问对象的属性和方法
使用new
创建一个对象后,可以使用对象.类成员
来获取对象的属性和行为 -
对象的引用
Book book // 引用只是存放一个对象的内存地址,并非存放一个对象
对象的比较
==
和equals()
的区别
==
比较两个对象引用的地址是否相等equals
比较两个对象引用所指的内容是否相等
权限修饰符
this关键字
- 使用
this
关键字代表对本类对象的引用 - 调用类中的构造方法
public class Work{
public Work(){ // 定义一个无参构造方法
this() // 调用有参构造方法
}
public Work(String name){ // 定义一个有参构造方法
}
}
静态成员 、变量 、 方法
- 使用
static
修饰 - 直接使用
类名.静态成员
调用 - 通常是为了提供共享数据或方法
- 静态方法中不可以使用this
- 不可调用非静态方法