Java入门:07.Java中的面向对象02

5 对象的使用

对象有两种使用情况

情况一:

  • 对象本身,是一个引用类型的数据

  • 所以他也可以像其他的所有数据一样,进行操作 如:存储,打印等。

int i = 10 ;
print(10) ;
​
//最终存储在变量中的是对象的地址。
Person person = new Person() ;
print( new Person() ) ;
print( person ) ;

情况二:

  • 对象包含属性和方法

  • 所以使用对象,其实就是使用对象中的属性和方法 。 类似于数组

class A{
    int i = 10 ;
    public void t1(){}
}
​
main(){
    A a = new A();
    
    a.i = 20 ;      //使用对象的属性
    print( a.i ) ;
    a.t1() ;        //使用对象的方法
    
    new A().i = 20 ; //可以创建对象的同时,就使用其属性或方法
}

6 面向对象的编程过程

OOA : 面向对象的分析

OOD : 面向对象的设计

OOP : 面向对象的编程

7 JVM中对象的创建和使用过程

8 面向对象的一些应用特点

对象成员

  • 对象  包含属性和方法。

  • 属性和方法都是对象的成员

  • 各自称为:成员属性 (成员变量,对象属性), 成员方法(对象方法)

  • 在成员方法中,可以使用自己的成员变量

成员变量与局部变量

  • 成员变量就是类对象中的变量,对于类对象中的所有方法是共享的。

  • 局部变量一般就是方法中的变量 。 (花括号中的变量)

9 构造方法

  • 类对象中可以包含属性和方法

  • 方法包含一个特殊的情况,就是构造方法

  • 构造方法又称为构造器

  • 构造方法特点

    1. 构造方法名称必须与类名相同

    2. 构造方法没有返回类型

    3. 目前,构造方法只能在new创建对象时被调用

    4. 不能修饰符 static , final ,abstract

  • 其余与普通方法相同

    • 异常声明

    • 访问权限

    • 参数列表

    • 方法重载

那么构造方法的作用是什么呢?

  • 主要是用于在创建对象的同时,为对象的属性初始化赋值

  • 或者创建对象的同时,执行一些初始化操作

注意:

我们在为属性初始化时,也可以在定义属性的同时使用=号初始化

是不是就意味着构造方法没有用了呢? 依然有用,有两点

  1. 初始化的数据,有可能每个对象不同,可以利用有参的构造方法,为属性传递不同的值

    class User{
        String name ;
        public User(String pname){
            name = pname ;
        }
        
    }
    ​
    new User("zs") ; 
    new User("ls") ;

  2. 在编译时,即使我们没有写构造方法,也会帮我们自动生成一个无参构造方法

    同时,将属性定义时的=号赋值操作,也移动到构造方法中。

    如果我们写了构造方法, 就不会再帮我们生成无参构造方法了。建议所有的类都提供无参构造方法

    class User{
        String name = "zs";
        String sex = "男" ;
    }
    ​
    //编译后变成了
    class User{
        String name ;
        String sex ;
        
        public User(){
            name = "zs" ;
            sex = "男" ;
        }
    }    

注意:

构造方法也可以像普通方法一样,重载

class User{
    public User(){}
    
    public User(String name){}
    
    public User(String name , String sex){}
}
​
new User() ;
new User("zs"); 
new User("zs","男") ;

10 对象创建的过程

引入构造方法后,对象创建的过程是什么样的

new User() ;
  1. jvm会根据new关键, 开辟对象的存储空间, 也就是创建了一个对象

    只不过空间中要放什么内容,还不知道。需要类模板

  2. 根据构造方法,找到类模板 。因为构造方法的名字与类名相同

    一旦找到类模板,就会按照类模板中声明的信息 产生变量和方法

    同时这个属性变量会有默认值

  3. 接下来会调用构造方法,为属性变量初始化赋值

  • 注意:上述的3步都是创建对象的过程。

那么今天的内容就到这里啦,如果存在哪些疑问或问题欢迎大家指出,我们下期再见~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/872883.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

歌者PPT新功能速递!

本期功能更新,主要围绕 PPT 大纲编辑器和 PPT 翻译功能,全面提升了制作效率和灵活性,帮助你更轻松地完成 PPT 制作!一起来看看吧~👇 # 功能更新 1 PPT 大纲编辑器全面更新 📝 现在&#xff0c…

解决Metasploit调用Nessus报错问题

问题描述 Error while running command nessus_scan_new: undefined method []’ for nil:NilClass 解决方法 发现报错,经过网上查询解决方法 在Nessus服务器执行,下面的版本号可能有所不同,根据自己的情况更改,需要管理员身份执…

FreeRTOS学习笔记(二)任务基础篇

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、 任务的基本内容1.1 任务的基本特点1.2 任务的状态1.3 任务控制块——任务的“身份证” 二、 任务的实现2.1 定义任务函数2.2 创建任务2.3 启动任务调度器2…

HOT 100(六)二分查找、栈

一、二分查找 1、搜索插入位置 初始化左右边界:left 指向数组的起始位置,right 指向数组的末尾。二分查找过程:不断计算中间位置 mid,根据 nums[mid] 与目标值 target 的比较结果,调整 left 和 right,从而…

Lenze伦茨E82ZBC, E82ZBB E82ZMBRB安装说明手测

Lenze伦茨E82ZBC, E82ZBB E82ZMBRB安装说明手测

VMware17 虚拟机下载以及 CentOS8 操作系统安装配置 一条龙全教程

目录 一、安装 vmware workstation 虚拟机 二、安装 CentOS8 操作系统 三、安装 FinalShell 远程连接 一、安装 vmware workstation 虚拟机 安装中...(耐心等待) 到此安装完成,点击启动运行 激活码如下: MC60H-DWHD5-H80U…

【个人笔记】VCS工具与命令

Title:VCS工具学习 一 介绍 是什么? VCS (Verilog Compiler Simulator) 是synopsys的verilog 仿真软件,竞品有Mentor公司的Modelsim、Cadence公司的NC-Verilog、Verilog—XL. VCS能够 分析、编译 HDL的design code,同时内置了 仿…

API 网关 OpenID Connect 实战:单点登录(SSO)如此简单

作者:戴靖泽,阿里云 API 网关研发,Higress 开源社区 Member 前言 随着企业的发展,所使用的系统数量逐渐增多,用户在使用不同系统时需要频繁登录,导致用户体验较差。单点登录(Single Sign-On&a…

Python和MATLAB(Java)及Arduino和Raspberry Pi(树莓派)点扩展函数导图

🎯要点 反卷积显微镜图像算法微珠图像获取显微镜分辨率基于像素、小形状、高斯混合等全视野建模基于探测器像素经验建模荧光成像算法模型傅里叶方法计算矢量点扩展函数模型天文空间成像重建二维高斯拟合天体图像伽马射线能量和视场中心偏移角标量矢量模型盲解卷积和…

每日OJ_牛客_求和(递归深搜)

目录 牛客_求和(递归深搜) 解析代码 牛客_求和(递归深搜) 求和_好未来笔试题_牛客网 解析代码 递归中每次累加一个新的数,如果累加和大于等于目标,结束递归。此时如果累加和正好等于目标,则打…

Quartz.Net_快速开始

简述 Quartz中主要分为三部分,JobDetail、Trigger、Scheduler,分别是任务、触发器、调度器,三者的关系为:Trigger控制JobDetail的执行时间和频率,而Scheduler负责将具体的Trigger与具体的JobDetail绑定 1.安装Quartz…

【无线通信发展史⑧】测量地球质量?重力加速度g的测量?如何推导单摆周期公式?地球半径R是怎么测量出来的?

前言:用这几个问答形式来解读下我这个系列的来龙去脉。如果大家觉得本篇文章不水的话希望帮忙点赞收藏加关注,你们的鼓舞是我继续更新的动力。 我为什么会写这个系列呢? 首先肯定是因为我本身就是一名从业通信者,想着更加了解自…

十大口碑最好开放式蓝牙耳机是哪些?五款热销好用产品测评!

​开放式耳机现在超火,成了时尚、好看又舒服的代名词,迅速俘获了一大波粉丝,成了耳机界的新宠儿。跟那些传统的入耳式耳机比起来,开放式耳机戴着更稳,对耳朵也更友好。不过,也有人觉得这玩意儿不值&#xf…

vue3集成sql语句编辑器

使用的是codemirror 安装 pnpm add codemirror vue-codemirror --savepnpm add codemirror/lang-sqlpnpm add codemirror/theme-one-dark使用 <template><codemirror v-model"configSql" placeholder"Code goes here..." ref"codemirrorR…

AIGC与数据分析融合,引领商业智能新变革(TOP企业实践)

AIGC与数据分析融合&#xff0c;引领商业智能新变革&#xff08;TOP企业实践&#xff09; 前言AIGC与数据分析融合 前言 在当今数字化时代&#xff0c;数据已成为企业发展的核心资产&#xff0c;而如何从海量数据中挖掘出有价值的信息&#xff0c;成为了企业面临的重要挑战。随…

云服务器内网穿透连接云手机配置ALAS

文章目录 服务器安装TailscaleNAT网络&#xff08;无独立IP&#xff09;云服务器安装Tailscale有固定IP的云服务器安装Tailscale 云手机安装Tailscale开启无线网络调试安装Tailscale ALAS连接云手机 上次写到服务器连接云手机时只说了有独立IP的&#xff0c;但有独立IP的云手机…

算法打卡——田忌赛马问题

问题简介&#xff1a;就是一个贪心的思想&#xff0c;下面上题目 要求示例输出输入 大体上先比较快马&#xff0c;田的快马与王的快马 其次比较田的慢马与王的慢马&#xff0c; 两处边界比较完全之后可以直接贪心了 几份示例的代码 代码一 #include <bits/stdc.h> …

个人旅游网(3)——功能详解——旅游路线功能

文章目录 一、旅游路线分类功能1.1、接口详解1.1.1、findAll 二、路线分类下的旅游路线功能2.2、接口详解2.2.1、findRouteListByCid 三、点击单条旅游路线查看其详情功能3.1、接口详解3.1.1、findRouteListByRid 四、分页功能4.1、导入依赖4.2、配置项的配置4.3、实现分页 一、…

每日一题~cf 970 div3 (A思维,B小模拟,C二分,D排列数建图成环,E 26个字母暴力+前缀和,F 逆元,G 数论gcd )

A 题意&#xff1a; 有 a 个1 ,b 个2.问是否能将这些数划分为两个数值相等的集合。 输出 YES 或者 NO —————— 问题等价于 将数组 分成两个数值相同的数组。所以sum 应该是偶数。也就是说 1 的个数是偶数。在i1的个数是偶数的情况下&#xff0c;将 2 分成两份&#xff0c;…

使用 EMQX 开源版的 Webhook 机制处理消息并存储数据

1、前言 EMQX 是一款强大的开源 MQTT 消息代理&#xff0c;它支持大量的连接和高吞吐量&#xff0c;适用于各种物联网应用。Webhook 是 EMQX 提供的扩展功能之一&#xff0c;用于将消息推送到外部的 HTTP 服务。在本文中&#xff0c;我们将介绍如何使用 EMQX 开源版的 Webhook …