java学习(七)面向对象,构造方法

HC-05蓝牙模块AT指令配置避坑全记录:从配对失败到稳定主从通信 本文详细记录了HC-05蓝牙模块AT指令配置的全过程,从基础认知到主从通信的稳定实现。涵盖了进入AT模式的方法、关键AT指令详解、主从配对流程及常见故障排除,帮助开发者快速掌握蓝牙串口模块的配置技巧,避免常见配对失败问题。 阅读详情

java学习(七)面向对象

面向对象的三大特征:封装、继承、多态

类

  • 类的定义:类是由属性和方法组成的

  • 实例变量:以下程序当中 no、name、age、sex 都是属性,它们都是成员变量中的实例变量

  • 实例变量访问:实例变量所谓实例变量就是对象级别的变量,这些属性要想访问,必须先创建对象才能访问,不能直接通过类去访问,因为每一个学生的学号都是不一样的。没有学生对象,谈何学号

    [修饰符] class 类名 {

    ​ 类体里有 属性 和 方法

    }

    public class Student {
        //学号
        int no;
        //姓名
        String name;
        //年龄
        int age;
        //性别
        boolean sex;
    }

对象:对象是堆里new出来的

JVM内,方法区存代码片段,栈区存方法和方法内的局部变量,堆区存对象和对象的实例变量(属性)

public class StudentTest {
    public static void main(String[] args) {
        int i = 10;
        Student s1 = new Student();
    } 
}
  • 代码在执行过程中JVM内存的变化

    • 第一步进行类加载

    • 第二步 main 方法调用,给 main 方法分配栈帧(压栈)

    • 第三步执行 main方法内的局部变量int i=10

    • 第四步执行 new Student(),在堆中创建对象,同时初始化实例变量

    • 第五步将堆区中学生对象的内存地址赋值给局部变量 s1

在创建对象的时候,也就是说在 new 的时候,系统会对实例变量默认赋值。数据类型和默认值为:

byte 0 short 0 int 0 long 0L float 0.0f double 0.0 boolean false char \u0000 引用类型 null

  • 堆和栈

    • 栈的活动最频繁,方法调用就压栈,调用结束就弹栈。栈中存储的是局部变量(方法内的变量)。

    • 堆:凡是通过new运算符创建的对象,都存储在堆内存中,new的作用就是在堆内存开辟一块存储空间用来存储对象和对象的示例变量,一个对象一个单独的空间

     

引用:存储对象内存地址的一个变量,所有的实例变量(属性)都是用"引用."访问的

  • 空指针异常:空引用 访问对象的数据的时候会出现这个异常java.lang.NullPointerException

构造方法:完成对象的创建,以及对象属性的初始化操作。是类中特殊的方法。

其语法格式如下:

[修饰符列表] 构造方法名(参数){

构造方法体;

}

怎么调用构造方法呢 ?其语法格式如下:

new 构造方法名(参数);

当一个类没有提供任何构造方法时,系统会默认提供一个无参数的构造方法(缺省构造器)最好将无参数的构造方法手写出来

  • 构造方法名和类名一致。 否则编译报错。

  • 构造方法返回值类型不需要写,写上就报错,包括 void 也不能写。

  • 构造方法用来创建对象,以及完成属性初始化操作。

  • 构造方法的返回值类型实际上是当前类的类型。

  • 一个类中可以定义多个构造方法,这些构造方法构成方法重载。

疑问?构造方法是在创建对象过程中给属性赋值的,实例变量系统是在啥时候赋值的?

是在类加载的时候吗?不是的,是在构造方法调用的时候。new 类名();

代码块:

public class Vip{
    long no;  //0
​
    String name;  //null
​
    String birth;  //null
​
    boolean sex;  //false
​
    //无参数的构造方法
    //为了保证无参数构造方法有,写代码的时候手动写出来
    public Vip(){
        
    }
​
    //有参数构造方法2个参数
    public Vip(long huiYunaHao,String xingMing){
        //实例变量赋值
        no = huiYunaHao;
​
        name = xingMing;
​
        //其实这里还有两行代码,没有手动赋值,系统会赋默认值
        //birth = null;
        //sex = false;
    }
​
    //有参数的构造方法3个参数
    public Vip(long huiYunaHao,String xingMing,String shengRi){
        no = huiYunaHao;
​
        name = xingMing;
​
        birth = shengRi;
    } 
​
        //有参数的构造方法4个参数
    public Vip(long huiYunaHao,String xingMing,String shengRi,boolean xingBie){
        no = huiYunaHao;
​
        name = xingMing;
​
        birth = shengRi;
​
        sex = xingBie;
​
    } 
}
​

调用上面代码

public class ConstructorTest_03{
    public static void main(String[] args){
        //调用不同的构造方法创建对象,给实例变量赋值
        Vip v1 = new Vip();
        Vip v2 = new Vip(602,"法外狂徒二哥");
        Vip v3 = new Vip(603,"法外狂徒张三","2008-08-08");
        Vip v4 = new Vip(604,"尼古拉斯老四","2014-11-14",true);
​
        System.out.println(v1.no);  //o
        System.out.println(v2.name);  //法外狂徒二哥
        System.out.println(v3.birth);  //2008-08-08
        System.out.println(v4.sex); //true
    }
}

 

ESP32、MicroPython、天问ASR-PRO,串口发送数据并播报 天问ASRPRO语音芯片内置脑神经网络处理器,支持DNN、TDNN、RNN等神经网络及卷积运算硬件运算,非软件运算,支持语音识别、声纹识别、语音增强、语音检测、单麦克风降噪增强、单麦克风回声消除、360度全方位拾音等功能。ASR-PRO可以图形化编程,降低开发难度,对小白友好。之前使用ASRPRO与ESP32进行过语音控制,这次由于一个项目需要对ESP处理过后的数据进行播报,就想到利用该模块。以下程序主要为测试代码,并非实际项目,仅供参考学习(若有错误,欢迎指正)。二者通过串口通信,波特率为9600。 阅读详情

相关推荐

Android息屏后台任务保活实战:从定时器失效到厂商白名单破解

本文深入探讨了Android应用在息屏后定时任务失效的根源,即系统为省电而触发的休眠机制。文章提供了从传统方案失效分析到实战破解的完整路径,核心在于引导用户将应用加入电池优化白名单并开启自启动权限,从而合法绕过限制。同时,结合WorkManager、AlarmManager等可靠定时方案,实现稳定的后台任务执行。

weixin_28475533的博客 422

18.编程:定义一个Teacher类,姓名(String) 年龄(int) 性别(boolean),要求如下: ① 提供无参数、有参数的构造方法② 功能方法teach(),返回值类型为void

18.编程:定义一个Teacher类,姓名(String) 年龄(int) 性别(boolean),要求如下: ① 提供无参数、有参数的构造方法 ② 功能方法teach(),返回值类型为void ③ 编写测试类,创建年龄为16岁的仙女小小老师,小小老师在讲课(true表示女)

liwen_li的博客 1088

【全开源】旅行吧旅游门票预订系统源码(FastAdmin+ThinkPHP+Uniapp)

此外,系统还会根据我的旅行计划和喜好,为我推荐合适的景点和门票,让我的旅行更加丰富多彩。旅游门票预订系统的出现,不仅简化了门票预订的流程,还提高了旅行的便捷性和效率。一款基于FastAdmin+ThinkPHP+Uniapp开发的旅游门票预订系统,支持景点门票、导游产品便捷预订、美食打卡、景点分享、旅游笔记分享等综合系统,提供前后台无加密源码,支持私有化部署。如今,有了旅游门票预订系统,这些问题都能迎刃而解。智能推荐:系统还会根据你的旅行计划和喜好,为你推荐合适的景点和门票,让你的旅行更加丰富多彩。

2401_84413757的博客 1301

009-对象的创建(老杜)

目录 NullPointerTest.java Student.java T.java User.java UserTest.java 学生.java 学生测试.java NullPointerTest.java /* 空指针异常。(NullPointerException) 关于垃圾回收器:GC 在java语言中,垃圾回收器主要针对的是堆内存。 当一个java对象没有任何引用指向该对象的时候, GC会考虑将该垃圾数据释放回...

dangerous156的博客 494

Android perfetto 简介

android linux 性能优化 原理及操作

求变,从思想开始 3475

5G LDPC编码实战:从校验矩阵到Matlab代码实现(附完整源码)

本文深入解析5G NR标准中的LDPC编码工程实现,聚焦于从3GPP协议中的QC-LDPC校验矩阵到高效Matlab代码的转换。文章详细阐述了基础矩阵(BG1/BG2)选择、提升因子确定以及利用双对角结构的快速编码算法,并提供了完整的、可优化的Matlab源码,旨在帮助通信算法工程师和开发者快速构建5G LDPC编码仿真原型,为硬件实现奠定基础。

table的专栏 377

类与对象(四)构造方法、对象初始化过程、类变量和实例变量

构造方法 什么是构造方法 在创建对象的时候,对象成员可以由构造函数方法进行初始化。 构造方法负责初始化类中的实例变量。 构造方法是一种特殊的方法,这种方法必须满足以下语法规则:构造方法必须与类名相同;不包含返回值类型描述部分。 构造方法不能有static和final关键字修饰。 为什么使用构造方法 在调用类的属性时,经常遇见有许多的属性的类,比如: public class Te...

Endeavor_G的博客 2080

AI订单流异常检测:精准识别与闭环处置

本文系统阐述了订单流AI驱动的可视化与异常解释系统的构建策略。核心包括:1)多维度融合的异常检测技术,结合数据指纹、行为图谱和时序分析实现精准识别;2)分级分类与自动化处置机制,通过规则矩阵和风险熵值量化进行智能决策;3)基于SHAP/LIME的可解释性技术,提升决策透明度;4)千万级数据训练要求,确保模型达到87%以上的F1值。系统采用Flink+PAI实时计算架构,支持从异常检测到根因分析的完整闭环,为电商、金融等领域的订单风险管理提供智能化解决方案。

2401_83000568的博客 1360

面向对象-构造方法

学生类: public class Student { /** * 学生类属性:姓名、年龄、课程、兴趣。 * 方法:显示学员个人信息 */ /** * 这是属性 */ public String name; public int age; public String course; public String interest; /** *这是构造方法 */ Studen

weixin_42490870的博客 290

PyTorch强化学习实战(1)——强化学习(Reinforcement Learning,RL)详解

在本节中,开始进入探索强化学习 (Reinforcement Learning, RL) 之旅,首先剖析了强化学习的独特之处及其与监督学习、无监督学习范式的关系。随后系统学习了强化学习的基础形式化框架及其内部关联机制,并深入讲解了马尔可夫过程 (Markov Process, MP)、马尔可夫奖励过程 (Markov Reward Process, MRP) 和马尔可夫决策过程 (Markov Decision Process, MDP),为后续学习奠定基础。

盼小辉丶的博客 2050

用 Docker 一键部署 SillyTavern酒馆 mac/windows/linux通用教程,我再也不手动折腾了!

本文介绍了如何使用 Docker 一键部署 SillyTavern 项目,适用于 Mac、Windows 和 Linux 系统。SillyTavern 是一个本地部署的大语言模型聊天界面,支持多种插件和扩展。文章详细说明了安装 Docker、拉取项目、启动容器、配置白名单、启用插件等步骤,并提供了常见问题的解决方法。通过 Docker 部署,用户可以避免繁琐的手动配置,快速搭建和运行 SillyTavern,适合希望简化部署流程的用户。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2620

Java如何像Python一样简洁地构造和解析Json 数据

Java如何像Python一样简洁地构造和解析Json 数据 爱跑咪 2016-08-23 20:27 作者:咪博士 身为一名 Java 程序员,如果要处理 Json 数据,你大抵听说过下面一些类库: Jackson , google gson , json-lib , flexjson , json-io , genson , fastjson 。不过,咪博士在这里不打

清兮灌缨的博客 1995

数据库系统工程师软考备战:第三篇 - SQL语言深入解析与应用

​​创建表​​​修改表​​​删除表​。

Programming Talk 122

Surpass Day6——Java面向对象的封装、构造方法

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。实际上,作为程序员,丰富自己的知识储备,提升自己的知识深度和广度是很有必要的。

m0_75232472的博客 1017

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

JAVA面向对象-构造方法

面向对象的三大特征-封装,继承,多态 封装 封装性在Java当中的体现: 方法就是一种封装 关键字private也是一种封装 构造方法 构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法。 格式: 修饰符 类名称(参数类型 参数名称) { 方法体 } 注意事项: 构造方法的名称必须和所在的类名称完全一样,就连大小写也要一样 构造方法不要...

huotong 463

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

java学习笔记day07-面向对象基础-构造方法

Day07 面向对象基础 面向对象和面向过程的思想对比 面向过程编程是一种以过程为中心的编程思想,实现功能的每一步,都是自己实现的; 面向对象是一种以对象为中心的编程思想,通过指挥对象实现具体的功能 面向对象思想小结: 客观存在的任何一种事务,都可以看作为程序中的对象 使用面向对象思想可以将复杂的问题简单化 将我们从执行者的位置,变成了指挥者 类和对象 类是对现实生活中一类具有共同属性和行为的事物的抽象 属性:该事物的各种特征 行为:该事物存在的功能(能够做的事情) 类和对象的

在每个领域闪耀 1278

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

面向对象——构造方法

Java 基础学习笔记(第六篇) 面向对象(POP[procedure oriented programming])和面向过程(OOP[object oriented programming])的设计思想 面向过程:分析出解决问题所需要的步骤,然后把步骤一步一步的实现 例如:把大象装进冰箱的问题:分析出一共分为三布,第一步:打开冰箱门;第二布:把大象塞进冰箱里;第二步:关上冰箱门。 面向过程:以分类的方式进行思考和解决问题,面向对象的思维方式适用于处理复杂的问题,先使用面向对象的方式对整体关系做出分类,

qq_45039852的博客 1944

Java面向对象(类,对象,构造方法,方法重载以及对象与引用

成员变量:类中的方法外的变量 就是为成员变量局部变量:方法中的变量 局部变量。

JUGkingCanYon的博客 1733

Java面向对象之初识类和对象、构造方法

Java面向对象的学习内容,包含面向对象的思想,初始类和对象,学习构造方法。

qq15035899256的博客 1073

JAVA面向对象之构造方法复习

这是一篇准备就业的复习博客。。。。。 把以前学过的内容进行一次汇总整合,也方便大家学习,欢迎大家指正。 JAVA面向对象之构造方法 目录 JAVA面向对象之构造方法 构造方法Constructor A-构造方法概述和作用: B-构造方法格式特点: C-构造方法的语法格式如下: D-构造方法注意事项 构造方法Constructor A-构造方法概述和作用: 构造方法是类...

theStrongestPit的博客 756

java 面向对象--封装--构造方法

java面向对象--封装--构造方法

2402_89573492的博客 1468

用脊椎学习Java——面向对象

面向对象编程(OOP)是一种程序设计方法,强调通过对象来模拟现实世界,具有易于维护、复用和扩展的特点。其核心思想是“一切皆对象”,程序被视为相互协作的对象集合,每个对象代表现实世界中的实体,拥有属性和行为。OOP的三大特性包括封装、继承和多态。封装将属性和方法封装成整体,并隐藏内部细节;继承允许子类继承父类的属性和方法,减少代码冗余;多态使得同一方法在不同类中具有不同形态。在Java中,类作为对象的模板,通过new关键字创建对象,并支持访问权限控制、构造方法重载、方法重载等机制。高级特性包括继承、super

2501_91909009的博客 1099

JAVA构造方法

构造方法与类同名,没有返回类型,并且在创建对象时被调用。它用于初始化对象的状态,并在对象被创建后执行必要的初始化操作。访问修饰符 类名(参数列表) {// 构造方法的代码其中,访问修饰符可以是public、protected、private或默认(无修饰符),用于限制构造方法的访问范围。在上面的代码中,我们定义了一个名为Person的类,并包含了name和age两个属性。我们还定义了一个含有参数的构造方法,用于初始化这些属性值。

2401_85673892的博客 1584

Java面向对象(构造方法)

构造方法 构造方法也称之为构造函数,构造器,是面向对象编程中的一个重要概念。 我们经常会使用构造方法来完成对象初始化的相关设置。构造方法在调用的时候必须配合new关键字,是不能被单独调用的。 注意:构造方法与类同名且没有返回值。构造方法只能在对象实例化的时候被调用 构造器本身是一个比较特殊的方法,方法名就是类名,没有返回值(和void是有区别的),构造器是类创建对象的唯一途径。 构造器的最大用处就是创建对象 无参构造方法 前面我们在定义对象时,发现并没有创建构造方法,但是我们依然可以使用构造方法去创建对象

Dokey_L的博客 1065

Java面向对象(一)_面向对象及构造方法

备注:如有错误请给予联系。 1.面向对象设计思想 面向对象的程序设计语言必须有描述对象及其相互之间关系的语言成分。 这些程序设计语言可以归纳为以下几类: 系统中一切事物皆为对象; 对象是属性及其操作的封装体; 对象可按其性质划分为类,对象成为类的实例; 实例关系和继承关系是对象之间的静态关系; 消息传递是对象之间动态联系的唯一形式...

Warhol1221的博客 370
上一篇: java学习(六)方法、栈、方法重载
下一篇: java学习(八)面向对象特征之封装和调用
python_nice
博客等级 码龄8年 46粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值