首页 > 编程语言 >Java基础学习(四)

Java基础学习(四)

时间:2025-01-08 17:23:58浏览次数:1  
标签:Java args 基础 学习 参数 返回值 static 方法 public

Java基础学习(四):方法

目录

本文为个人学习记录,内容学习自 狂神说Java


定义

方法的组成部分:

  • 修饰符:可选,定义了访问类型
  • 返回值类型: 没有返回值时为 void ,否则为具体返回值
  • 方法名:方法的实际名称,应遵守驼峰原则
  • 参数类型 参数名:可选,为形参
  • 方法体:定义该方法的功能
修饰符 返回值类型 方法名(参数类型 参数名){
    // 方法体
    return 返回值;		// 结束方法,没有返回值时可不写
}

调用

方法的调用根据类型的不同可以分成两种:(这个和“类变量”-“实例变量”的区别一致)

  • 静态方法:对于用 static 修饰的方法,可以直接在类内使用 方法名(实参)
  • 非静态方法:对于没有用 static 修饰的方法,需要先声明对象再调用 对象名.方法名(实参)

重载

重载就是在一个类中,有相同的方法名称,但形参不同的方法

重载的规则:

  • 方法名称必须相同
  • 参数列表必须不同(个数不同、或类型不同、或参数排列顺序不同等)
  • 返回值类型可以相同也可以不同

命令行传参

示例:

package com.vitoria.method;											// 包名

public class Demo02 {
    public static void main(String[] args) {
        for (int i = 0; i < args.length; i++) {						// length参数用于获取数组长度
            System.out.println("args[" + i + "]: " + args[i]);		// 逐个打印传递给main的参数
        }
    }
}

假设当前终端路径位于项目文件夹处,Demo02.java 文件位于 src\com\vitoria\method\Demo02.java

  1. 编译:

    javac src\com\vitoria\method\Demo02.java
    
  2. 运行:

    cd src															// 要执行包下的文件,必须先移动到src目录下
    java com.vitoria.method.Demo02 aaa bbb ccc						// aaa bbb ccc 是传递给main方法的参数
    
  3. 输出结果:

    args[0]: aaa
    args[1]: bbb
    args[2]: ccc
    

可变长参数

  • 在 JDK5 之后,支持传递同类型的可变长参数给一个方法
  • 在方法的声明中,在指定参数类型后加一个省略号(...),表明该参数为可变长参数
  • 一个方法中只能指定一个可变长参数,且它必须是该方法的最后一个参数
  • 可变长参数的本质是一个数组
public class Demo03 {
    public static void main(String[] args) {
        test(1, 2, 3);
    }
    public static void test(int... i){				// 使用static修饰方法,这样才能在类内直接使用(这点和类变量一致)
        for (int j = 0; j < i.length; j++){			// 此处i是可变长参数,长度任意
            System.out.println(i[j]);
        }
    }
}

递归

  • 定义:方法调用本身,称之为递归

  • 优点:可以用简单的程序解决复杂的问题

  • 缺点:递归次数多了容易导致栈溢出(内存不足),需要大量计算的场合应避免使用递归

  • 示例:使用递归实现阶乘

    public class Demo04 {
        public static void main(String[] args) {
            int result = test(5);
            System.out.println(result);
        }
        public static int test(int x){
            if (x == 1){
                return 1;
            }else{
                return x * test(x-1);
            }
        }
    }
    

标签:Java,args,基础,学习,参数,返回值,static,方法,public
From: https://www.cnblogs.com/victoria6013/p/18660181

相关文章

  • 学习 - Linux - Centos安装jdk8
    Centos安装jdk8安装包下载地址:通过网盘分享的文件:jdk链接:https://pan.baidu.com/s/1dQTMZk7foPZhOcw55QM_lQ?pwd=sky1提取码:sky1二、上传至Centos系统解压文件并移动到usr/local目录下解压tarzxvfjdk-8u181-linux-x64.tar.gz移动mvjdk1.8.0_181/usr/local/jdk8......
  • java-se-01
    Java目录Java1.我的第一个Java程序2.Java简介3.开发环境4.Java基础5.注释6.Java对象和类7.基本数据类型8.基本命名规则9.修饰符10.String类11.StringBuffer和StringBuilder12.流(stream),文件(File)和IO1.我的第一个Java程序publicclassMain{publicstaticvoidmain(Stri......
  • 【Java编程】一个高性能、支持百万级多任务重试框架:Fast-Retry
    前言假设你的系统里有100万个用户,然后你要轮询重试的获取每个用户的身份信息,如果你还在使用SpringRetry和GuavaRetry之类的这种单任务的同步重试框架,那你可能到猴年马月也处理不完,即使加再多的机器和线程也是杯水车薪,而Fast-Retry正是为这种场景而生。Fast-Retry一个高性能......
  • JNI接口--实现Java调用C++
    1、JNI原理概述通常为了更加灵活高效地实现计算逻辑,我们一般使用C/C++实现,编译为动态库,并为其设置C接口和C++接口。用C++实现的一个库其实是一个或多个类的简单编译链产物,然后暴露其实现类的构造方法和纯虚接口类。这样就可以通过多态调用到库内部的实现类及其成员方法。进一步地......
  • java 中类的继承(超级基础哦)
    在Java中,类的继承是面向对象编程的一个重要特性。继承允许一个类从另一个类中继承属性和方法。通过继承,子类可以重用父类的代码,并可以进行方法的重写(Override)或扩展。1.继承的基本语法class父类{//父类的属性和方法}class子类extends父类{//子类继......
  • java中的接口概念(超级基础哦)
    在Java中,接口(Interface)是一种特殊的类,通常用于定义类与类之间的协议或契约,规定类必须实现哪些方法。接口本身只包含方法的声明,而不包含方法的具体实现。实现接口的类必须提供接口中声明的所有方法的具体实现。1.接口的基本语法interface接口名称{//常量pub......
  • Semaphore在Java中的解释及主要用途
    目录定义使用方法主要用途使用场景示例定义Semaphore(信号量)是Java并发编程中的一个同步工具类,用于控制对共享资源的访问。它通过维护一个计数器来管理多个线程对资源的并发访问数量。这个计数器表示当前可用的许可数,每当一个线程获取资源时,计数器减一;当线程释放资源时......
  • 在Java中如何使用wait()和notify()方法
    在Java中,wait()和notify()方法是用于线程间通信的重要同步机制。它们主要用于协调多个线程对共享资源的访问,确保线程安全。以下是对这两个方法的详细解释和使用场景说明:1. wait()方法定义wait()方法使当前线程进入等待状态,直到其他线程调用此对象的notify()或notifyAll()方......
  • Java HashMap 深度解析:底层原理、源码剖析与面试必备知识
    1.HashMap概述HashMap是Java集合框架中最常用的数据结构之一,基于哈希表(HashTable)实现。它以键值对(Key-Value)存储数据,允许null键和null值,且无序。1.1HashMap的特性基于哈希表(HashTable)实现允许null键和null值非线程安全默认初始容量16,负载因子0.75JDK1......
  • 【机器学习与数据挖掘实战】案例08:基于Apriori算法的商品零售购物篮分析
    【作者主页】FrancekChen【专栏介绍】⌈⌈⌈机器学习与数据挖掘实战⌋......