初识面向对象
1. 万物皆对象
自然界中的任何事物,我们都可以对其分析,分析出这个事物的共有的特征以及共有的行为,理解为一个对象
2. 类和对象的关系
类是对象的抽象,比如人类,学生类,仅仅是抽象概念
对象是类的具体,比如赵四,学生小明,属于是真真实实存在的个体
3. 属性和方法
一类事物共有的特征,我们称之为属性(我们使用属性描述)
一类事物共有的行为,我们称之为方法(我们使用方法描述)
4. 创建类和对象
先分析此类事物的特征和行为,分别书写为属性和方法
package com.atguigu.test2;
/**
* @author WHD
* @description TODO
* @date 2022/7/15 9:23
*
* 学生类 :我们可以分析学生这一类事物共有的信息和行为 编写在类中 作为 属性 和 方法
* 姓名
* 属性/特征:
* 年龄
* 学号
* 性别
* 身高
* 体重
* 爱好
* 班级
* 地址
* ……
* 方法/行为:
* 吃饭
* 睡觉
* 学习
* 唱歌
* 跳舞
* rap
* 篮球
* 谈恋爱
* 运动
* ……
*/
public class Student {
String name;
int age;
double height;
double weight;
char sex;
String address;
String hobby;
String gradeName;
public void study(){
System.out.println("学生学习");
}
public void eat(){
System.out.println("学生吃饭");
}
public void sleep(){
System.out.println("学生睡觉");
}
public void sing(){
System.out.println("学生唱歌");
}
public void dance(){
System.out.println("学生跳舞");
}
public void rap(){
System.out.println("keep real keep real");
}
public void love(){
System.out.println("学生谈恋爱");
}
public static void main(String[] args) {
// 1.通过new关键创建对象 类名 对象名 = new 类名();
Student stu1 = new Student();
// 2.通过对象名访问属性 给属性赋值 具体化 对象名.属性名
stu1.name = "赵四";
stu1.age = 17;
stu1.gradeName = "三年二班";
stu1.height = 175.5;
stu1.hobby = "尬舞";
stu1.sex = '男';
stu1.weight = 65;
// 3.通过对象名访问对象的行为 对象名.方法名
// 我们现在书写的方法 称之为 实例方法 不能直接调用 必须通过对象+.
stu1.study();
stu1.dance();
stu1.eat();
stu1.love();
stu1.rap();
stu1.sing();
}
}
5. 实例变量和局部变量区别
实例变量 | 描述 |
---|---|
生命周期 | 随着对象的创建而存在(有生命,有默认值),随着对象被垃圾回收而死亡 GC |
存储位置 | 实例变量全部存在堆中 |
package com.atguigu.test3;
/**
* @author WHD
* @description TODO
* @date 2022/7/15 9:23
*
* 学生类 :我们可以分析学生这一类事物共有的信息和行为 编写在类中 作为 属性 和 方法
* 姓名
* 属性/特征:
* 年龄
* 学号
* 性别
* 身高
* 体重
* 爱好
* 班级
* 地址
* ……
* 方法/行为:
* 吃饭
* 睡觉
* 学习
* 唱歌
* 跳舞
* rap
* 篮球
* 谈恋爱
* 运动
* ……
*
* 属性/实例变量/成员变量/字段:
* 定义位置:直接写在类中
* 作用范围:整个类中
* 默认值:有默认值,与数组相同
* 重名:可以与局部变量重名,就近原则
*/
public class Student {
String name;
int age;
double height;
double weight;
char sex;
String address;
String hobby;
String gradeName;