【javase基础】第九篇:类和对象划重点

👀作者简介:大家好,我是大杉。
🚩🚩 个人主页:爱编程的大杉
支持我:点赞+关注~不迷路🧡🧡🧡
✔系列专栏:javase基础⚡⚡⚡
(❁´◡`❁)励志格言:生命对我来说,太短暂了,不能用来怀恨记仇。在这世上,肯定人人都有一身的过错。(from 《简·爱》)
🤞🤞

在这里插入图片描述


一.类和对象的关系

类是抽象化特征集合,对象则是根据类提供的特征实例化的体现
在这里插入图片描述就好比类是一个建筑图纸。而对象是根据图纸建造出来的各种各样的建筑(一个类可以实例化多个对象)

二.类的封装

1.封装的含义

1.🔥在我们写代码的时候经常会涉及两种角色: 类的实现者和类的调用者.
2.👀封装的本质就是让类的调用者不必太多的了解类的实现者是如何实现类的, 只要知道如何使用类就行了
3.⛳📣简言之,就是通过封装将自定义类中的某些成员变量和方法保护起来,使其不能被类的调用者直接访问。提高了安全性以及减小了代码的维护成本

2.private实现封装

1.private修饰成员变量

 private String name;//封装成员变量
 private static double height;
 private static double weight;
 

2.private修饰方法

1.同上面类似在方法的返回类型前用private修饰
2.注意的点:private 修饰的方法只能在当前类中被当前类中方法调用。但是一个类中的方法不能调用另一个类中的private 方法
3.private修饰方法不能在main函数中调用,只能在当前类中被当前类中方法调用
在这里插入图片描述

在main方法中调用就会报错
在这里插入图片描述

3.getter,setter方法创建公共接口

被private修饰的方法虽然不能被main调用,但是被private修饰的成员变量可以通过getter和setter方法间接调用

public String name;
public String getName() {//获得name
        return name;
    }

    public void setName(String name) {
    //设立name

        this.name = name;
    }

三.static修饰的成员变量和方法

1.static修饰成员变量

注意点
🏀.static修饰的成员变量或者方法,是直接依赖于类的不依赖于对象;所以main函数中可以通过类名直接调用成员

2.static修饰方法

🏀.被static修饰的静态的方法,不能调用不被static修饰的方法,但反之却可以
在这里插入图片描述

🏀.static修饰的成员只有一份。

如何理解只有一份呢?请看下面!🤞🤞

四.自定义类中各成员的存放位置分析

在这里插入图片描述🚩🚩从上面的图片可以看出,只要new出一个对象。name,age(不被static修饰的成员)就会在新的对象中拷贝一份
但是被static修饰的成员的变量会被放在方法区,不会随着对象的创建,拷贝出新的变量,因此只有一份

注意:1方法区不一定是放方法的!
2.不存在方法在内存怎么分配这一说

五.this关键字

1为什么会有this呢?
先看一个例子
在这里插入图片描述当出现这种情况是,本来我们是想对外面的Myname赋值,但是变量名相同就会出现明显的错误。这时候this就派上用场了。

public void setMyName(String MyName){
this.MyName=MyName;
}

加上this后就表示外面 的MyName变量了
因为this表示当前变量的引用
2.除此之外this在构造方法中还有其他用处
在这里插入图片描述

六.构造方法的注意事项

1.构造方法的目的

为成员变量赋值

2.注意事项

1.注意事项

在没有手动添加构造方法的时候,系统会默认一个无参构造方法。在手动添加了构造方法后就不会自动默认存在一个自带的无参构造方法

3.常考面试题

问:this关键字代表对象,这句话对还是不对?
解答这个问题首先要明确,产生对象分几步?
1.为对象分配内存。
2.调用合适的构造方法。
答:明显不一样,因为this关键字实在调用构造方法的过程中使用的,而对象在调用构造方法之后才会产生。(上文提到了,this代表当前对象的引用)

七.代码块

1.实例代码块(定义在类中)

在这里插入图片描述

2.静态代码块

在这里插入图片描述

注意:静态代码块中不能用到非静态的变量。更不能用到this因为this代表当前对象的引用,是基于对象的。而静态代码块是被static修饰的,是基于类的
在这里插入图片描述

  • 19
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 32
    评论
JavaSEJava Standard Edition)是Java平台的标准版,提供了Java语言的核心库和基础功能。下面是一些JavaSE基础知识的介绍: 1. Java语言特性:Java是一种面向对象的编程语言,具有简单、可移植、安全、高性能等特点。它支持自动内存管理(垃圾回收)、异常处理、多线程等特性。 2. 数据类型:Java提供了基本数据类型(如整型、浮点型、字符型、布尔型)和引用数据类型(如类、接口、数组)。可以使用变量来存储和操作数据。 3. 控制流程:Java提供了条件语句(如if-else、switch)、循环语句(如for、while、do-while)和跳转语句(如break、continue)来控制程序的执行流程。 4. 类和对象Java是一种面向对象的语言,所有的代码都必须定义在类中。类是对象的模板,对象是类的实例。可以使用类来创建对象,并通过对象调用类中的方法和访问类中的属性。 5. 继承和多态:Java支持继承机制,一个类可以继承另一个类的属性和方法。通过继承可以实现代码的重用和扩展。多态是指同一个方法在不同的对象上有不同的行为。可以通过方法重写和方法重载来实现多态。 6. 异常处理:Java提供了异常处理机制,可以捕获和处理程序中的异常。通过try-catch-finally语句块可以捕获异常并进行相应的处理,保证程序的稳定性和可靠性。 7. 输入输出:Java提供了丰富的输入输出功能,可以通过标准输入输出、文件操作、网络通信等方式进行数据的输入和输出。 8. 集合框架:Java提供了一套集合框架,包括List、Set、Map等接口和实现类,用于存储和操作数据集合。集合框架提供了高效的数据结构和算法,方便开发者进行数据处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@Starry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值