Java学习Day15:基础篇5

news2024/9/20 18:49:58

1.参数问题

2.变量

3.可变参数

package 方法demo1__code;

public class two {
    public static void main(String[] args) {
        text.add(3,4,5,6);
    }
}
class text{
   static void add(int ... a){
    }
}

可变参数其实是一个数组,可以用数组的方式使用;

ATT:

1.定义时定义在最后后面,不然可变参数后面的参数永远接收不到数据!

2.可变参数只能有一个

3.可变参数本质是数组

4.方法重载

实现场景:

实现两个数相加但是并没有指明类型;

int+int或者double+double;

例子:

import java.util.Scanner;

public class two {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int a= sc.nextInt();
            int b= sc.nextInt();
            int c=one(a,b);
            System.out.println(c);
            String d = sc.next();
            String e = sc.next();
            String f =one(d,e);
            System.out.println(f);
        }
        public static int one(int a ,int b){
            return a+b;
        }
        private static String one (String a ,String b){
            return a+b;
        }
    }

5.静态及非静态方法

在Java中,静态方法(Static Methods)和非静态方法(Instance Methods)在行为和使用场景上存在显著差异。静态方法属于类本身,而非静态方法则属于类的实例。下面我将通过实现一个简单的功能——计算两个整数的和,来展示这两种方法的区别和用法。

静态方法实现

静态方法可以直接通过类名调用,无需创建类的实例。由于它不依赖于对象的状态(即不访问非静态成员变量),因此它不能访问类的非静态成员(包括方法和变量)。

java复制代码

public class Calculator {
// 静态方法实现加法
public static int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
// 直接通过类名调用静态方法
int sum = Calculator.add(5, 3);
System.out.println("The sum is: " + sum);
}
}
非静态方法实现

非静态方法需要通过类的实例来调用。这意味着在调用非静态方法之前,必须先创建类的实例。非静态方法可以访问类的静态成员和非静态成员。

 

java复制代码

public class Calculator {
// 非静态方法实现加法
public int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
// 创建Calculator类的实例
Calculator calc = new Calculator();
// 通过实例调用非静态方法
int sum = calc.add(5, 3);
System.out.println("The sum is: " + sum);
}
}
静态方法与非静态方法的区别
  1. 调用方式:静态方法通过类名直接调用,而非静态方法需要通过类的实例来调用。

  2. 访问权限:静态方法只能直接访问类的静态成员(静态变量和静态方法),而非静态方法可以访问类的所有成员(静态和非静态)。

  3. 用途和场景:静态方法通常用于实现与类本身相关的工具性功能,不依赖于任何对象实例的状态。非静态方法则用于实现与对象实例紧密相关的功能,需要访问或修改对象实例的状态。

  4. 内存分配:静态方法属于类本身,它们在类加载时就被加载到JVM的方法区,而非静态方法则属于对象实例,它们随着对象的创建而创建,随着对象的销毁而销毁。

综上所述,选择使用静态方法还是非静态方法,取决于你希望实现的功能是否与类的实例状态相关。如果功能不依赖于对象的状态,那么使用静态方法会更方便、更高效。如果功能需要访问或修改对象的状态,那么应该使用非静态方法。

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

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

相关文章

Jenkins详细使用教程

目录 1. 什么是Jenkins? 2. 为什么使用Jenkins? 3. 安装Jenkins 3.1 下载相关文件 3.2 解压Linux版本的JDK 3.3 配置JDK环境 3.4 运行jenkins.war 3.5 安装完成 4. 访问Jenkins 5. 修改密码 6. 集成JDK 7. Jenkins集成Git 7.1 使用Jenkins拉取…

[C++] vector入门迭代器失效问题详解

文章目录 vector介绍**vector iterator 的使用** vector迭代器失效问题由扩容或改变数据引起的迭代器失效reserve的实现(野指针)insert实现(迭代器位置意义改变)insert修改后失效的迭代器 it迭代器失效 erase后的问题总结&#xf…

代码随想录||day25 非递减子序列,全排列问题

491非递减子序列 力扣题目链接 题目描述: 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素,如出现两个整数相等&#x…

【C++】透析类和对象(下)

有不懂的可以翻阅我之前文章! 个人主页:CSDN_小八哥向前冲 所属专栏:CSDN_C入门 目录 拷贝构造函数 运算符重载 赋值运算符重载 取地址运算符重载 const成员函数 取地址重载 再探构造函数 初始化列表 类型转换 static成员 友元 内…

LLMs之Llama 3.1:Llama 3.1的简介、安装和使用方法、案例应用之详细攻略

LLMs之Llama 3.1:Llama 3.1的简介、安装和使用方法、案例应用之详细攻略 导读:2024年7月23日,Meta重磅推出Llama 3.1。本篇文章主要提到了Meta推出的Llama 3.1自然语言生成模型。 背景和痛点 >> 过去开源的大型语言模型在能力和性能上一…

vmware虚拟机安装linux没有IP地址

直接设置固定IP 1、在虚拟机菜单栏选择编辑,然后点击虚拟网络编辑器 2、选择Vmnet8 Net网络连接方式,随意设置子网IP 3、点击NAT设置页面,查看子网掩码和网关,修改静态IP会用到 4、打开电脑控制面板–网络和Internet–网络连…

Visual Studio 智能代码插件:Fitten Code

Fitten Code 是由非十大模型驱动的AI编程助手,它可以自动生成代码,提升开发效率,协助调试 Bug,节省时间。还可以对话聊天,解决编程碰到的问题。 Fitten Code 免费且多种编程语言,包括 Python、C、Javascri…

【CG】计算机图形学(Computer Graphics)基础(其贰)

0 学习视频 B站GAMES101-现代计算机图形学入门-闫令琪 ※ 接上文【CG】计算机图形学(Computer Graphics)基础(其壹) 7 光线追踪 7.1 为什么需要光线追踪? 光栅化无法妥善处理全局效果 (软)阴…

sizeof和strlen区别

如图,sizeof来计算的时候,得出的是计算机用多少个字节来表示一个地址 而strlen来计算的时候,只是计算出他的有效字符长度 打印出的不同地址就是其不同的区别

数据中心同步指南 : 数据中心架构师和其他网络专家需要了解有关 5G 同步的知识

随着 5G 的推出,电信基础设施的设计方式正在发生巨大变化。由于网络运营商希望创建更开放的网络基础设施生态系统,部分基础设施(如基带处理)被虚拟化并移至电信数据中心。影响数据中心架构的另一个与 5G 相关的趋势是移动边缘计算…

20240727 每日AI必读资讯

🌐OpenAI向Google宣战,重磅推出AI搜索引擎SearchGPT ! - 将 AI 与实时网络信息结合 提供生成式UI结果 - SearchGPT 结合网络最新信息可以直接回答问题,同时注明相关来源链接。 - 还可以像与人对话一样提出后续问题,…

YOLOv8 改进 | 注意力机制 | 处理原始SE通道信息丢失问题的ESE【含分割,检测,OBByaml文件】

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv8改进有效…

开放式耳机哪个品牌值得入手?五大年度黑马产品推荐

近几年开放式耳机获得了越来越多消费者的青睐,其中十分重要的原因就是,它能在不降低佩戴体验感的同时,让我们在不同的环境中尽情享受音乐。对于刚刚接触开放式耳机的朋友们来说,挑选一款在自己不踩雷的开放式耳机并非易事&#xf…

关于同一型号单片机使用不同版本的Keil5.pack包导致编译找不到对应.h问题

1.单片机型号:STM32G070CBTX 2.过程分析 拿到一个完整的工程,打开后编译报错,一些.h文件找不到,导致一些宏定义报错,如下图所示: 刚开始怀疑是安装的pack问题,又去ARM官网上下载最新的STM32G0xx_DFP.1.5.0版本的pack包…

吴恩达的TranslationAgent学习

TranslationAgent构成 整个[TranslationAgent (github.com)]在流程上分为短文本的一次性翻译和长文本的分chunk翻译(按照Token进行划分)。 但是不论长文本翻译还是短文本翻译,总体流程遵循执行、纠正再执行的逻辑循环实现。 这种按照自省思路…

Android ContentResolver.loadThumbnail转Kotlin

Android ContentResolver.loadThumbnail转Kotlin loadThumbnail原先是Java实现的,现在抠出来转Kotlin实现。 private fun loadThumbnail(uri: Uri, size: Size, signal: CancellationSignal): Bitmap {return myLoadThumbnail(mContext?.contentResolver!!, uri, s…

基于Qt的视频剪辑

在Qt中进行视频剪辑可以通过多种方式实现,但通常需要使用一些额外的库来处理视频数据。以下是一些常见的方法和步骤: 使用FFmpeg FFmpeg是一个非常强大的多媒体框架,可以用来处理视频和音频数据。你可以使用FFmpeg的命令行工具或者其库来实现…

Qemu和宿主机不使用外网进行文件传输

简介 目前Qemu虚拟机和宿主机交互,最方便的方式是进行网络传输,但也有不能使用外网的情况,这时候使用挂载是比较好的方式。 Linux使用 宿主机:Linux Qemu:Linux 传输方式:挂载 参考:在QEMU虚拟…

深圳市索迪迈科技有限公司:车载视频监控领域的精英

位于科技创新前沿的深圳市,索迪迈科技有限公司是一家专业从事车载视频监控设备研发、生产、销售的高新技术企业。公司自成立起,一直专注于车载设备领域的研发、生产、经营、服务一体化,为市场提供卓越的车载监控产品。 自主专业,专…