java-面向对象

 什么是类?什么是对象?

   - 现实生活中是由很多很多对象组成的,基于对象抽出了类

   - 对象:软件中真实存在的单个个体/东西

     类:类别/类型,代表一类个体

   - 类是对象的模子,对象是类的具体的实例

   - 类中可以包含:

     - 对象的属性/特征-----------------------成员变量
     - 对象的行为/动作-----------------------方法

   - 一个类可以创建多个对象

2. 如何创建类?如何创建对象?如何访问成员?

   ```java
 

 public class Student { //Student类就是我们自己造的一种引用类型//成员变量String name;int age;String address;//方法void study(){System.out.println(name+"在学习...");}void sayHi(){System.out.println("大家好,我叫"+name+",今年"+age+"岁了,家住"+address);}}


   

   public class StudentTest {public static void main(String[] args){//创建一个学生对象Student zs = new Student();//给成员变量赋值zs.name = "zhangsan";zs.age = 25;zs.address = "河北廊坊";//调用方法zs.study();zs.sayHi();Student ls = new Student();ls.name = "lisi";ls.age = 24;ls.address = "黑龙江佳木斯";ls.study();ls.sayHi();//1)创建了一个学生对象//2)给所有成员变量赋默认值Student ww = new Student();ww.study();ww.sayHi();}}

 方法的重载(overload/overloading)

     - 发生在同一类中,方法名相同,参数列表不同
     - 编译器在编译时会根据方法的签名自动绑定方法

   //重载的演示public class OverloadDemo {public static void main(String[] args) {Aoo o = new Aoo();o.show(); //编译器根据方法的签名自动绑定方法o.show("zhangsan");o.show(25);o.show("zhangsan",25);o.show(25,"zhangsan");}}class Aoo{void show(){}void show(String name){}void show(int age){}void show(String name,int age){}void show(int age,String name){}//int show(){ return 1;} //编译错误,重载与返回值类型无关//void show(String address){} //编译错误,重载与参数名称无关}

 构造方法:构造函数、构造器、构建器---------复用给成员变量赋初值代码

   - 作用:给成员变量赋初始值
   - 与类同名,没有返回值类型(连void都没有)
   - 在创建(new)对象时被自动调用
   - 若自己不写构造方法,则编译器默认提供一个无参构造方法,若自己写了构造方法,则不再默认提供
   - 构造方法可以重载

    2. this:指代当前对象,哪个对象调用方法它指的就是哪个对象

   ​          只能用在方法中,方法中访问成员变量之前默认有个this.

            this的用法:

          - this.成员变量名-------------访问成员变量

          > 成员变量与局部变量同名时,若想访问成员变量则this不能省略    

     class Student {String name; //成员变量(整个类中)int age;String address;//局部变量(当前方法中)Student(String name,int age,String address){this.name = name;this.age = age;this.address = address;}void study(){System.out.println(name+"在学习...");}void sayHi(){                       System.out.println("大家好,我叫"+name+",今年"+age+"岁了,家住"+address);}}

   - this.方法名()-----------------调用方法(了解)

   - this()---------------------------调用构造方法(了解)

null:

表示空,没有指向任何对象,若引用的值为null,则该引用不能进行任何点操作了,若操作则发生NullPointerException空指针异常

引用类型数组

     

    引用类型的数组是一种数组,其中每个元素都是引用类型的对象。引用类型包括类、接口、数组和枚举。

下面是一个示例代码,演示了如何创建和使用引用类型的数组:

public class Main {public static void main(String[] args) {// 创建一个字符串数组String[] names = new String[3];// 给数组元素赋值names[0] = "Alice";names[1] = "Bob";names[2] = "Charlie";// 遍历数组并打印每个元素for (String name : names) {System.out.println(name);}}
}

在这个示例中,我们创建了一个字符串数组names,它有3个元素。我们使用索引来访问数组元素,并通过赋值运算符将字符串赋给每个元素。然后,我们使用增强for循环遍历数组,并打印每个元素的值。

该代码的输出将是:

Alice
Bob
Charlie

总结:   

    类是Java中最基本的组织单元。一个类是对象的蓝图或模板,它定义了对象的属性和行为。

类有以下几个特点:

  1. 类是由成员变量(属性)和成员方法(行为)组成的。
  2. 类可以用来创建多个对象,每个对象都具有相同的属性和方法。
  3. 类可以被其他类继承,从而扩展其属性和方法。
  4. 类可以被封装,即将类的实现细节隐藏起来,只暴露必要的接口。

类的语法结构如下:

[修饰符] class 类名 {// 成员变量[修饰符] 类型 变量名;// 构造方法[修饰符] 类名(参数列表) {// 构造方法的实现}// 成员方法[修饰符] 返回类型 方法名(参数列表) {// 方法的实现[return 返回值;]}
}

      其中,修饰符可以是publicprivateprotected等,用来控制成员的访问权限。成员变量定义了类的属性,可以是基本数据类型或引用数据类型。成员方法定义了类的行为,可以访问和修改成员变量,也可以调用其他方法。

         类的实例化是通过使用new关键字创建一个对象,并调用构造方法进行初始化。对象可以访问成员变量和成员方法,使用.运算符进行访问。

      类的继承是通过使用extends关键字实现的,子类可以继承父类的属性和方法,并可以添加自己的属性和方法。一个类只能继承一个父类,但可以实现多个接口。

    类的封装是通过使用private关键字实现的,将类的实现细节隐藏起来,只能通过公共的方法进行访问。这样可以提供更好的安全性和灵活性。

 


 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【gpt4 8k 免费使用】Coze 是一款用来开发新一代 AI Chat Bot 的应用编辑平台

Coze 快速开始 | Coze Welcome to Coze Coze 是什么? Coze 是一款用来开发新一代 AI Chat Bot 的应用编辑平台,无论你是否有编程基础,都可以通过这个平台来快速创建各种类型的 Chat Bot,并将其发布到各类社交平台和通讯软件上。…

【C++】类和对象之匿名对象友元内部类

目录 一、匿名对象 1、基础格式 2、使用场景 二、友元 1、友元函数 2、友元类 三、内部类 1、概念 2、特性 四、拷贝对象时的一些编译器优化 1、函数传参 2、对象返回 一、匿名对象 1、基础格式 【注意】 🟢匿名对象的声明周期只有当前行,进入…

[计算机提升] 创建FTP共享

4.7 创建FTP共享 4.7.1 FTP介绍 在Windows系统中,FTP共享是一种用于在网络上进行文件传输的标准协议。它可以让用户通过FTP客户端程序访问并下载或上传文件,实现文件共享。 FTP共享的用途非常广泛,例如可以让多个用户共享文件、进行文件备份…

超越5大最先进的文本到视频系统!MagicVideo-V2:多阶段高保真视频生成框架(字节)

本项工作介绍了MagicVideo-V2,将文本到图像模型、视频运动生成器、参考图像embedding模块和帧内插模块集成到端到端的视频生成流程中。由于这些架构设计的好处,MagicVideo-V2能够生成具有极高保真度和流畅度的美观高分辨率视频。通过大规模用户评估&…

【设计模式-6】建造者模式的实现与框架中的应用

建造者模式又被成为生成器模式,是一种使用频率比较低,相对复杂的创建型模式,在很多源码框架中可以看到建造者的使用场景,稍后我们会在本文末尾展示几个框架的使用案例。  建造者模式所构造的对象通常是比较复杂而且庞大的&#x…

【Unity】Android实现跳转应用设置(权限)

为了应对Google推荐要求,需要在申请权限时进行提示可跳转应用设置界面,开启权限来保证功能正常进行。 MainActivity.java下(继承Activity)//跳转至应用设置界面public void JumpAppSetting(){Intent intent new Intent();intent.setAction(android.pro…

Day31 贪心算法 part01 理论基础 455.分发饼干 376.摆动序列 53.最大子序和

贪心算法 part01 理论基础 455.分发饼干 376.摆动序列 53.最大子序和 理论基础(转载自代码随想录) 什么是贪心 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 这么说有点抽象,来举一个例子: 例如&#…

Unity——VContainer的依赖注入

一、IOC控制反转和DI依赖倒置 1、IOC框架核心原理是依赖倒置原则 C#设计模式的六大原则 使用这种思想方式,可以让我们无需关心对象的生成方式,只需要告诉容器我需要的对象即可,而告诉容器我需要对象的方式就叫做DI(依赖注入&…

企业级大数据安全架构(三)修改集群节点hostname

作者:楼高 在后续安装FreeIPA的过程中,要求机器名必须包含完整的域名信息。如果之前在Ambari集群节点上的机器名不符合这个要求,可以按照以下步骤在Ambari上修改所有节点的机器名: 1.部署节点说明 本次测试是三台 ambari 节点&…

在ios上z-index不起作用问题的总结

最近在维护一个H5老项目时,遇到一个问题,就是在ios上z-index不起作用,在安卓上样式都是好的。 项目的架构组成是vue2.x vux vuex vue-router等 用的UI组件库是vux 在页面中有一个功能点,就是点选择公司列表的时候,会…

【软件测试作业_TPshop商城】农业工程学院-测试需求分析与测试计划+自动化+性能+测试用例+报告软件缺陷+测试计划+单元测试+系统测试

1测试需求分析与测试计划 1.1 被测系统简介 1.2测试需求分析 1.2.1单元测试层面的测试需求分析 1.2.2系统测试层面的测试需求分析 1.3测试计划 1.31测试范围与任务 1.3.2 测试环境 1.3.3测试进度安排 测试用例的设计2 2.1单元测试层面的测试用例设计 2.2系统测试层面的测试用例…

安装黑群晖 过程中 报错误13 卡8% 40% 52% 55%、56%、57%、58%解决方法

安装群晖时部分机器会报各种错误卡进度条,例如:DSM6报 错误13 、DSM7 报52% 55%、56%、57%、58% 如果你是压根搜索不到ip参考这个:群晖引导成功之后群晖助手/Synology Assistant搜索不到机器ip解决方法 - Tank电玩&米多贝克U盘的PID和VI…

【Golang map并发报错】panic: assignment to entry in nil map

go并发写map[string]interface{}数据的时候,报错:panic: assignment to entry in nil map 多个key同时操作一个map时,如: test[key1] 1 test[key2] "a" test[key3] true 就会遇到并发nil值报错,什么…

linux部署apache服务部署静态网站

第一步:配置IP地址 第二步:创建挂载点 配置yum仓库 mkdir -p /media/cdrom 挂载 mount /dev/cdrom /media/cdrom 安装服务 安装yum源 启用httpd服务程序并将其加入到开机启动项中 建立网站数据保存目录,并创建首页文件 mkdir /home/wwwroo…

Educational Codeforces Round 153 (Rated for Div. 2)(VP-11,寒假加训)

VP时间 A.模拟 如果有()就是no 如果没有就2种情况 1.()()() 2.((())) 1.ac B.贪心 用面值大的花色硬币…

英伟达推新AI语音识别模型Parakeet 号称优于Whisper

领先的开源对话 AI 工具包 NVIDIA NeMo宣布推出 Parakeet ASR 模型系列,这是一系列最先进的自动语音识别(ASR)模型,能够以出色的准确性转录英语口语。Parakeet ASR 模型与 Suno.ai 合作开发,是语音识别领域的一大突破&…

Jenkins相关问题及答案(2024)

1、什么是Jenkins? Jenkins 是一个开源的自动化服务器,它可以被用作持续集成和持续交付(CI/CD)的工具。CI/CD 是一种软件开发实践,目的是帮助团队更快地实现软件构建、测试和发布。Jenkins 提供了自动化的框架&#x…

WCF REST消息格式(JSON/XML)选择

可以说WebHttpBinding和WebHttpBehavior是整个Web HTTP编程模型最为核心的两个类型,前者主要解决消息编码问题,而余下的工作基本上落在了终结点行为WebHttpBehavior上。WebHttpBehavior属性HelpEnabled和AutomaticFormatSelectionEnabled是“帮助页面”与…

这些代码对比工具,你都知道吗?屎山别怕

在程序开发的过程中,程序员会经常对源代码以及库文件进行代码对比,在这篇文章里我们向大家介绍六款程序员常用的代码比较工具 WinMerge WinMerge是一款运行于Windows系统下的文件比较和合并工具,使用它可以非常方便地比较多个文档内容&#…

Hadoop分布式文件系统(三)

目录 一、Hadoop 1、MapReduce 1.1、理解MapReduce思想 1.2、分布式计算概念 1.3、MapReduce介绍 1.4、MapReduce特点 1.5、MapReduce局限性 1.6、MapReduce实例进程 1.7、MapReduce阶段组成 1.8、MapReduce数据类型 1.9、MapReduce官方示例 2、YARN 一、Hadoop 1…