#学习笔记#05_面向对象

面向对象

面向过程:当需要实现一个功能时,每个具体的步骤都得自己写,亲力亲为
面向对象:当需要实现一个功能时,不关心具体的步骤,找一个已经具有该功能的东西替我做事

示例代码:

import java.util.Arrays;

public class a05_面向对象 {
    public static void main(String[] args) {
        int[] array01 = {0,1,5,4,6};
//        使用两种不一样的方法来打印数组

//        使用面向过程
        System.out.print("[");
        for (int i = 0; i < array01.length; i++) {
            if (i == array01.length - 1){
                System.out.println(array01[i] + "]");
            }else {
                System.out.print(array01[i] + ", ");
            }
        }

        System.out.println("-------------------------------------------");

//        使用面向对象
//        找一个JDK给我们提供好的类
//        里面有toString方法直接提供这个效果
        System.out.println(Arrays.toString(array01));
    }
}

在这里插入图片描述

1、介绍

a)面向过程强调的是步骤,面向对象强调的是对象
b)面向对象三大基本特征:封装、继承和多态

2、类和对象的关系

a)是一组相关属性行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物
b)属性(成员变量):就是该事物的状态信息 | 行为(成员方法):就是该事务能够做什么
c)类是对一类事物的描述,是抽象的 | 对象是一类事物的实例,是具体的
d)类是对象的模板。对象是类的实体
例如下图,类就相当于设计图,对象相当于真正的手机
在这里插入图片描述
e)注意事项
1.成员变量是直接定义在类当中,在方法外
2.成员方法不要写static关键字
e)过程
1.导包:指出需要的类在什么位置
import 包名称.类名称
import java.util.Arrays;
对于和当前类属于同一个包的情况,可以省略到导包语句不写
2.创建
格式:类名称 对象名 = new 类名称();
Student stu = new Student();
3.使用
使用成员变量:对象名.成员变量名
使用成员方法:对象名.成员方法名(参数)
4.局部变量和成员变量的区别
定义的位置不一样
局部变量定义在方法内部
成员变量定义在方法外部,直接写在类当中
作用范围不一样
局部变量只有在方法当中才可以用,出了方法就不能用了
成员变量则是在整个类都可以使用
默认值不一样,
局部变量没有默认值得自己赋值
全局变量没有赋值的话会有默认值
⚪内存位置不一样
局部变量位于栈内存
成员变量位于堆内存
⚪生命周期不一样
局部变量随着方法进栈诞生,出栈消失
成员变量随着对象创建诞生,对象被垃圾回收而消失
⚪方法的参数也是局部变量
相关代码:

//a05_面向对象.java

public static void main(String[] args) {
//        导包
        a05_面向对象01 stu = new a05_面向对象01();
//        使用成员变量
        System.out.println("未赋值↓");
        System.out.println(stu.name);
        System.out.println(stu.age);
        stu.age = 18;
        stu.name = "jack";
        System.out.println("赋值后↓");
        System.out.println(stu.name);
        System.out.println(stu.age);

//        使用成员方法
        stu.eat();
        stu.sleep();
        stu.study();
    }
//a05_面向对象01.java

public class a05_面向对象01 {
//    成员变量(全局变量)
    String name;
    int age;

//    成员方法
    public void study(){
        System.out.println("学习");
    }
    public void eat(){
        System.out.println("吃饭");
    }
    public void sleep(){
        System.out.println("睡觉");
    }
}

在这里插入图片描述

3、使用对象时内存空间的变化

介绍视频:一个对象的内存图两个对象使用同一个方法的内存图两个引用指向同一个对象的内存图

4、使用对象类型作为方法参数

内存变化过程:使用对象类型作为方法的参数内存图
相关代码:

//a05_面向对象.java
public static void main(String[] args) {

        a05_面向对象01 stu01 = new a05_面向对象01();
        stu01.name = "lucy";
        stu01.age = 18;
        idea01(stu01);

    }
    public static void idea01(a05_面向对象01 parma) {
        System.out.println(parma.name);
        System.out.println(parma.age);
        parma.study();
        parma.sleep();
        parma.eat();
    }
//a05_面向对象01.java
public class a05_面向对象01 {
//    成员变量(全局变量)
    String name;
    int age;

//    成员方法
    public void study(){
        System.out.println("学习");
    }
    public void eat(){
        System.out.println("吃饭");
    }
    public void sleep(){
        System.out.println("睡觉");
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值