Java基础07:面向对象基础

系列文章目录

Java基础01:JAVA概述、基础语法
Java基础02:运算符、流程控制语句、Random随机数
Java基础03:IDEA、快捷键
Java基础04:数组、二维数组
Java基础05:方法
Java基础06:Debug、进制
Java基础07:面向对象基础
Java基础08:API、字符串String、StringBuilder
Java基础09:ArrayList集合
Java基础作业



面向对象和面向过程的思想对比

面向对象三(四)大特征:封装、继承、多态、(抽象)
⚫ 面向过程:是一种以过程为中心的编程思想,实现功能的每一步,都是自己实现的
⚫ 面向对象:是一种以对象为中心的编程思想,通过指挥对象实现具体的功能
对象:指客观存在的事物,万物皆对象

在这里插入图片描述
⚫ 面向对象的好处:
A:将复杂的事情简单化了
B:更符合人们思想习惯的思想(懒人思想)
C:将程序员由执行者变成了指挥者

类和对象

1.什么是类
是对现实世界 同一类 具有 共同属性行为 的 事物的模拟。
例如:学生类
2.什么是对象
就是某一类事物的具体体现,是类的具体体现。
例如:张三、李四、王五
通过类创建对象,一个类可以创建多个对象。
3.属性和行为

  • 属性:事物的基本特征。例如:学生类:都有姓名,都有年龄。
  • 行为:事物可以做什么事情。例如:学生类:都会学习,都会吃饭。

类的定义

类的组成:属性和行为
⚫ 属性:在类中通过成员变量来体现(类中方法外的变量)
⚫ 行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)

示例代码:
public class Phone {
    // 成员变量
    String brand; // 品牌
    double price; // 价格
    String color; // 颜色
    // 成员方法
    public void call(String who) {
        System.out.println("给" + who + "打电话");
    }
    public void sendMessage() {
        System.out.println("群发短信");
    }
}
一个类就是一个数据类型。如:
public  class String{
		.......
}
public class Student{
}

创建对象并使用

创建对象
⚫ 格式:类名 对象名 = new 类名();
⚫ 范例:Student s = new Student();

使用对象
1:使用成员变量
⚫ 格式:对象名.变量名
⚫ 范例:p.name
2:使用成员方法
⚫ 格式:对象名.方法名()
⚫ 范例:p.study();
示例代码:
public class Demo01PhoneOne {
    public static void main(String[] args) {
        // 根据Phone类,创建一个名为one的对象
        // 格式:类名称 对象名 = new 类名称();
        Phone one = new Phone();
        System.out.println(one.brand); // null
        System.out.println(one.price); // 0.0
        System.out.println(one.color); // null
        System.out.println("=========");

        one.brand = "苹果";
        one.price = 8388.0;
        one.color = "黑色";
        System.out.println(one.brand); // 苹果
        System.out.println(one.price); // 8388.0
        System.out.println(one.color); // 黑色
        System.out.println("=========");

        one.call("乔布斯"); // 给乔布斯打电话
        one.sendMessage(); // 群发短信
    }
}

对象内存图

1.对象的实体保存在哪里?答:堆中,因为是new出来的。
2.对象名保存的是什么?答:对象实体在堆中的地址值。

单个对象内存图

在这里插入图片描述
在这里插入图片描述
new的对象中存在堆内存中,堆内存中的数据都有默认初始值,成员方法不会放进堆内存,堆内存中存放的是成员方法的地址
study方法执行完成后,study方法从栈内存弹出,随后main方法弹出,程序结束。

两个对象内存图

问:这一次,.class字节码文件是否要再加载一次?
答:不用,一个类(设计图),可以创建很多对象。
在这里插入图片描述
s1.study();和 s2.study();用的是同一个方法。
s1.study()弹出栈内存后,加载了s2.study();s2.study()弹出后,main()弹出程序结束。

两个引用指向同一对象内存图

在这里插入图片描述
两个引用指向同一对象内存图,stu1和stu2都指向001;
在这里插入图片描述
stu1=null后再使用报空指针异常,但并不影响stu2的指向。
在这里插入图片描述
当stu1=null;stu2=null;后,001这个对象就成了垃圾对象,没人使用。

垃圾回收

注意:当堆内存中,对象或数组产生的地址,通过任何方式都不能被找到后,就会被判定为内存中的“垃圾”,垃圾会被Java垃圾回收器,空闲的时候自动进行清理。

成员变量和局部变量

在这里插入图片描述

区别成员变量局部变量
类中位置不同类中方法外方法内或者方法声明上(形参)
内存中位置不同堆内存栈内存
生命周期不同随着对象的存在而存在,随着对象的消失而消失随着方法的调用而存在,随着方法的调用完毕而消失
初始化值不同有默认的初始化值没有默认的初始化值,必须先定义,赋值,才能使用

封装

封装:
⚫ 面向对象三大特征之一(封装,继承,多态)
⚫ 隐藏实现细节,仅对外暴露公共的访问方式
⚫ 封装常见的体现:
1、私有成员变量,提供setXxx和getXxx方法,私有仅仅是封装的一种体现
2、将代码抽取到方法中,这是对代码的一种封装
3、将属性抽取到类当中,这是对数据的一种封装
⚫ 封装的好处:
1、提高了代码的安全性
2、提高了代码的复用性

private

private关键字:
⚫ 是一个权限修饰符
⚫ 可以修饰成员(成员变量和成员方法)
⚫ 被private修饰的成员只能在本类中才能访问


针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作:
⚫ 提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰
⚫ 提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰

this

局部变量和成员变量如果重名,Java使用的是就近原则。

public class Demo1 {
    int a=111;
    public static void main(String[] args) {
        int a=222;
        System.out.println(a);//结果:222
    }
}

this作用:this可以用来区分局部变量和成员变量同名的问题
this代表什么:代表当前对象的引用。方法被哪个对象调用,this就代表哪个对象。
在这里插入图片描述

this内存原理

在这里插入图片描述

在这里插入图片描述

构造方法

概述

⚫构造方法就是 构建、创造对象的时候,所调用的方法
⚫ 格式:

  1. 方法名与类名相同,大小写也要一致
  2. 没有返回值类型,连void都没有
  3. 没有具体的返回值(不能由retrun带回结果数据)

⚫ 执行时机:

  1. 创建对象的时候调用,每创建一次对象,就会执行一次构造方法
  2. 不能手动调用构造方法

⚫ 作用:用于给对象的数据(属性)进行初始化
在这里插入图片描述

构造方法的注意事项

⚫ 构造方法的创建

  1. 如果没有定义构造方法,系统将给出一个默认的无参数构造方法
  2. 如果定义了构造方法,系统将不再提供默认的构造方法

⚫ 构造方法的重载
如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法
⚫推荐的使用方式
无论是否使用,都手动书写无参数构造方法,和带参数构造方法

构造方法进行成员变量的赋值和set方法的区别

1.如果在创建对象的时候已经知道了所有成员变量的值可以使用有参构造进行设置,因为这样子需要调用一次即可.
2.但是如果对象已经创建完了,还想要修改成员变量的值就必须用setXxx方法.

一个标准的类(JavaBean)

① 成员变量
使用private修饰
② 构造方法
1.提供一个无参构造方法
2.提供一个带多个参数的构造方法
③ 成员方法
1.提供每一个成员变量对应的setXxx()/getXxx()
2.提供一个显示对象信息的toString()
④ 创建对象并为其成员变量赋值的两种方式
1.无参构造方法创建对象后使用setXxx()赋值
2.使用带参构造方法直接创建带有属性值的对象

package com.zhy.day7;

public class Student {
    private int age;
    private String name;

    public Student() {
    }

    public Student(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Student{" +
                "age=" + age +
                ", name='" + name + '\'' +
                '}';
    }
}

IDEA快速创建JavaBean

鼠标右键→Generate
在这里插入图片描述
在这里插入图片描述
ctrl+A全选成员变量。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值