面向对象
三大特性:
封装
继承
多态
面向过程 : 强调过程,怎么做这件事,解决小问题。站在执行者的角度思考问题
面向对象:强调对象,由谁来做这件事情,解决大问题。 站在指挥者的角度思考问题
类和对象
-
类:是一组相关属性和行为的集合,是一类事务的模板
-
对象:是一类事物的具体表现,对象是类的实例,具备类的成员变量和成员方法
类和对象的关系
-
类是抽象的,类是对一类事物的描述。
-
对象是具体的,对象是一类事务的实例。
-
类是对象的模板,对象是类的实体或者实例
类的定义
- 属性:事物的状态信息。
- 行为:事物能够做什么。
在Java中,用class关键字表示类
在Java中,用成员变量表示属性。
在Java中,用成员方法表示行为。
成员变量:定义在类中,方法外的变量。
成员方法:
- 实例方法(对象方法) 在方法声明中, 没有static声明的方法。
- 静态方法 在方法声明中,有static声明的方法
类的定义格式举例:
public class Student() {
//成员变量
String name;
int age;
//成员方法
public void eat() {
System.out.println("吃饭");
}
public void study() {
System.out.println("学习");
}
}
对象使用格式
创建对象
类名 对象名 = new 类名(); //存放在堆内存中
使用对象访问类中的成员
对象名.成员变量;
对象名.成员方法();
对象使用代码举例
public class OopDemo01 {
public static void main(String[] args) {
//实例化对象
Student stu = new Student();
//访问对象的成员变量
System.out.println("姓名:" + stu.name); //姓名:null
System.out.println("年龄:" + stu.age); //年龄:0
stu.name = "张三";
stu.age = 20;
//访问对象的成员变量
System.out.println("姓名:" + stu.name); //姓名:张三
System.out.println("年龄:" + stu.age); //年龄:20
//访问对象的成员方法
stu.eat(); //吃饭
stu.study(); //学习
}
}
成员变量的默认值
数据类型 | 默认值 | |
---|---|---|
基本数据类型 | 整型(byte,short, int , long) | 0 |
浮点型(float,double) | 0.0 | |
字符型(char) | ‘u\0000’ | |
布尔型(boolean) | false | |
引用数据类型 | 数组,类,接口 | null |
成员变量和局部变量区别
- 在代码中的位置:
- 成员变量:定义在类中,方法外。
- 局部变量:定义在方法中或者方法声明上(形参)
- 在内存中的位置:
- 成员变量:在堆内存中。
- 局部变量:在栈内存中。
- 默认值
- 成员变量:成员变量有默认值
- 局部变量:没有默认值。需要必须先定义,初始化然后在使用。
- 作用范围
- 成员变量:作用在整个类中
- 局部变量:作用在方法内
- 生命周期
- 成员变量:随着对象的创建而存在,随着对象的消失而消失
- 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失