首页 > 编程语言 >JAVA - 面向对象编程

JAVA - 面向对象编程

时间:2023-04-07 19:45:40浏览次数:37  
标签:JAVA 个数 列表 参数 面向对象编程 可变 类型 方法

面向对象是在之前基本实现的基础上的又一抽象,这里的 “高内聚,低耦合” 体现的更加明显,有抽丝剥茧、不断总结的感觉了。
学习的时候真的会有拨开云雾见月明的感觉,这种感觉真的会上瘾。你慢慢发现所有的东西都在以自己的规律运转,发现 验证 使用,真的很有《实践论》的味道。
我能做些什么?知道这些能帮助我做好什么?

前言

面向过程像是对事不对人,这件事情到底要如何完成?
面向对象更在乎发挥人的主观能动性,对象的属性和方法,对象之间是如何组织起来的,如何能够协作得更好。
当然,这两者不可分割,发挥人的主观能动性也是去做事情的。【有管理那味道了哈哈哈】

类是抽象的模板,对象(实例)是模板下真正出来的作品。

Java 中用类 class 来描述事物也是如此。类是一组相关属性和行为的集合,这也是类最基本的两个成员。
属性:该类事物的状态信息。对应类中的成员变量 成员变量 属性 <=>Field
行为:该类事物要做什么操作, 或者基于事物的状态能做什么。对应类中的成员方法 (成员)方法 函数 <=>Method

定义一些东西一定要知道这些东西所需要的元素,权限限制、类型、名字、需要接收什么。
一定要清楚他们的特点,才能不漏不缺。这很重要。

内存分析

这一段很重要,要好好总结体会。

方法重载

方法重载: 在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可。参数列表不同,意味着参数个数或参数类型的不同
重载的特点: 与修饰符、返回值类型无关,只看参数列表 且参数列表必须不同。(参数个数或参数类型)。调用时根据方法参数列表的不同来区别
重载方法调用:WVM通过方法的参数列表, 调用匹配的方法先找个数、类型最匹配的,再找个数和类型可以兼容的,如果同时多个方法可以兼容将会报错。

可变个数的形参

格式:
方法名(参数的类型名···参数名)
举例:
//JDK5.0以前采用数组形参来定义方法,传入多个同一类型变量
public static void test(int a, String[] books);
//JDK5.0,采用可变个数形参来定义方法,传入多个同一类型变量
public static void test(int a String...books);
特点:
可变参数:方法参数部分指定类型的参数个数是可变多个:0个,1个或多个
可变个数形参的方法与同名的方法之间,彼此构成重载。
可变参数方法的使用与方法参数部分使用数组是一致的,二者不能同时声明,否则报错。
方法的参数部分有可变形参,需要放在形参声明的最后在一个方法的形参中,最多只能声明一个可变个数的形参。

封装

实现封装就是控制类或成员的可见性范围。这就需要依赖访问控制修饰符,也称为权限修饰符来控制。

继承

标签:JAVA,个数,列表,参数,面向对象编程,可变,类型,方法
From: https://www.cnblogs.com/yuyuanliu/p/17293092.html

相关文章

  • java -- Math、BigInteger、BigDecimal类和基本类型的包装类、正则表达式
    Mathjava.lang.Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单。Math.PI//静态常量publicstaticfinaldoublePI=3.14159265358979323846;abs//返回参数的绝对......
  • Java多版本切换 8-11-17
    Java版本切换在A:\DevEnvironment\javaVersion目录下,创建Windows命令脚本Java8.bat @echooff setJAVA_HOME=A:\DevEnvironment\jdk-1.80_152 setPath=%JAVA_HOME%\bin;%Path% echoVersionhasbeenswitchedtoJava8.Java11.bat @echooff setJAVA_HOME=A:\DevE......
  • 【开源免费】ChatGPT-Java版SDK重磅更新至1.0.10版,支持Tokens计算,快来一键接入。
    简介ChatGPTJava版SDK开源地址:https://github.com/Grt1228/chatgpt-java,目前收获将近1000个star。有bug欢迎朋友们指出,互相学习,所有咨询全部免费。最新版:1.0.10<dependency><groupId>com.unfbx</groupId><artifactId>chatgpt-java</artifactId><version......
  • salesforce学习笔记(3-1)- JavaScript Promise(LWC)
    在JS代码中,Promise到底有什么作用?首先,我们知道的是,Javascript是单线程的,什么意思呢?就是说JS在同一时间只能做一个操作,代码的执行是一行一行进行的:  这种执行方式带来的问题就是在我们打开某个画面的时候,画面可能会卡住转圈、加载中状态很久,用户体验感很差。Promise可用于......
  • Jenkins Maven Java项目
     [root@localhost~]#catx2.sh#!/bin/bashrm-rfjavawebappname=$1pid=`ps-ef|grep$appname|grep'java-jar'|awk'{printf$2}'`echo$pidif[-z$pid];thenecho"$appnamenotstarted"else......
  • Java | 一分钟掌握异步编程 | 5 - CompletableFuture异步
     作者:Mars酱 声明:本文章由Mars酱编写,部分内容来源于网络,如有疑问请联系本人。 转载:欢迎转载,转载前先请联系我!前言继续讲,前面讲了Future实现异步,优点缺点也都有,这里讲使用CompletableFuture机制,目前为止,应该说JDK原生提供的异步方式的最优方案就是CompletableFuture了,已知的开源......
  • 如何在Java中做基准测试?JMH使用初体验
    大家好,我是王有志,欢迎和我聊技术,聊漂泊在外的生活。快来加入我们的Java提桶跑路群:共同富裕的Java人。最近公司在搞新项目,由于是实验性质,且不会直接面对客户的项目,这次的技术选型非常激进,如,直接使用了Java17。作为公司里练习两年半的个人练习生,我自然也是深度的参与到了技术选型的......
  • 实战-JAVA应用程序CPU占用率飙升,定位线程的堆栈信息
    分以下几个步奏:(1)使用命令top-p<pid>,显示你的java进程的cpu情况,pid是你的java进程号,比如14203。(使用jps可以获取到java的进程id或者top直接查看)(2)按H,获取每个线程的CPU情况。(shirt+H)(3)找到内存和cpu占用最高的线程tid,比如14204。(4)转为十六进制得到377C,此为线程id的十六进......
  • 什么是 Java 字节码?采用字节码的好处是什么?
    在Java中,JVM可以理解的代码就叫做字节码(即扩展名为.class的文件),它不面向任何特定的处理器,只面向虚拟机。Java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以,Java程序运行时相对来说还是高效的(不过,和C++......
  • Java 判断是否是数字 正则表达式
    privatestaticbooleanisInteger(Stringstr){//可以包含小数Patternpattern=Pattern.compile("^[0-9]+(.[0-9]+)?$");//只包含两位小数Patternpattern=Pattern.compile("^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){0,2})?$");......