java学习之main方法

news2024/11/15 13:43:19

目录

一、main方法的注意事项

 二、在IDEA中传入参数


一、main方法的注意事项

形式:public static void main(String[] args){},main方法是一个静态方法,访问修饰符是:public,形参是String数组 args

注意事项:

1.main方法是虚拟机在调用

2.java虚拟机需要调用类的main()方法,而且java虚拟机和main方法不在同一个类,所以访问权限必须是public

 

 如上图所示,去掉public后,运行的绿色箭头消失了(改成其他的访问修饰符也不行

3.java虚拟机在调用main()方法时不必创建对象,所以该方法必须是static

 也就是说在调用TestPerson类的main方法时,是不需要创建TestPerson对象的

去掉static之后,run的选项也消失了,不能运行

4.该方法接收String类型的数组参数,该数组中保存执行java命令时传递给所运行的类的参数,接收参数

public class Hello {
	public static void main(String[] args) {
		//args是如何传入
		//遍历显示
		for(int i = 0; i < args.length; i++) {
			System.out.println("第" + (i + 1) +"个参数= "+ args[i]);
		}
	}
}

简书上的说明

(1)Java应用程序是可以通过命令行接受参数传入的,从命令行传递的参数可以在java程序中接收,并且可以用作输入。

(2)因为命令行参数最终都是以字符串的形式传递的,并且有的时候命令行参数不止一个,所以就可能传递多个参数。

(3)这时候,作为Java应用程序执行的入口,main方法就需要能够接受这多个字符串参数,那么就使用字符串数组了。

5.java 执行的程序 参数1 参数2 参数3

特别提示

1) 在 main()方法中, 我们可以直接调用 main 方法所在类的静态方法或静态属性
2) 但是, 不能直接访问该类中的非静态成员, 必须创建该类的一个实例对象后, 才能通过这个对象去访问类中的非静态成员,还是之前讲过的静态方法只能访问静态成员,不能访问非静态成员

package com.hspedu.main_;

public class Main01 {
    //静态变量/属性
    private static String name = "曹操";
    private int age = 28;

    //静态方法
    public static void m1(){
        System.out.println("Main01的m1方法");
    }

    //非静态方法
    public void m2(){
        System.out.println("Main01的m2方法");
    }

    //main方法,静态方法
    public static void main(String[] args){
      //main是静态方法,可以访问本类的静态成员
       System.out.println(name);
       m1();

        //不能直接访问非静态成员
        //System.out.println(Main01.age);错误
        //m2();错误
        //需要创建对象才能访问
        Main01 main01 = new Main01();
        System.out.println(main01.age);
        main01.m2();
    }


}

 二、在IDEA中传入参数

package com.hspedu.main_;

public class CommandPara {
    public static void main(String[] args) {
        for (int i = 0; i < args.length; i++) {
            System.out.println("args[" + i + "] = " + args[i]);
        }
    }
}

 在传入之前运行,是不会有什么结果的

点运行键下的Edit Configuration,添加参数

再次运行,就会显示参数

 

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

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

相关文章

go语言--函数

package mainimport "fmt"func main(){//功能: 10 20var num1 int 10var num2 int 20var sum int 0sum num1sum num2fmt.Println(sum) }为什么使用函数 提高代码的复用性&#xff0c;减少代码冗余, 代码维护性也提高了 函数的定义 为完成摸一个功能的程序指令(…

IRCNN-FPOCS 文章解读

1、论文概述 1&#xff09;待解决的问题&#xff1a;地震道数据缺失&#xff08;野外地震数据的质量往往受到地质环境或设备参数的影响&#xff0c;这些数据可能在空间上不连续&#xff0c;导致地震痕迹缺失&#xff0c;也称为下采样观测&#xff09; 2&#xff09;目的&…

从菜鸟到团队协同大神:产品经理工具技能修炼

现在&#xff0c;自雇人士和自由职业者越来越普遍。受环境影响&#xff0c;员工们正在放弃朝九晚五的工作&#xff0c;转而采用更灵活的远程工作&#xff0c;另一方面&#xff0c;随着办公数字化转型、远程办公的需求强烈、在线协协同管理工具飞项等一批知名互联网工具如雨后春…

c#入门-捕获变量

局部变量捕获 局部函数&#xff0c;匿名函数&#xff0c;可以直接在函数体内使用局部变量。 如果作为委托使用&#xff0c;传递给别人。可能在别人使用委托的时候&#xff0c;这些局部变量的作用域就已经消失了。 因此&#xff0c;编译器会对这些变量做出特殊的操作&#xff…

优维低代码:I18n 国际化

优维低代码技术专栏&#xff0c;是一个全新的、技术为主的专栏&#xff0c;由优维技术委员会成员执笔&#xff0c;基于优维7年低代码技术研发及运维成果&#xff0c;主要介绍低代码相关的技术原理及架构逻辑&#xff0c;目的是给广大运维人提供一个技术交流与学习的平台。 连载…

第8季3:使用字库字符实现区域显示

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 一、代码框架分析 在第8季2&#xff1a;OSD实验演示与代码分析中&#xff0c;我们分析了SAMPLE_RGN_CreateVideoRegion函数&#xff0c;该函数完成了左下角的logo区域显示、右下角的时间区域显示&a…

Ubuntu18.04安装教程

Ubuntu18.04安装教程# 阿里云源 deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates ma…

【Vue+Springboot】综合程序设计后端部分实现(含跨越访问)

文章目录1、功能展示2、前端部分&#xff1a;VueAPI3、后端部分&#xff1a;Springboot1、功能展示 大致分为用户管理&#xff0c;商品管理&#xff0c;收藏管理&#xff0c;购物车管理&#xff0c;订单管理五个模块。 2、前端部分&#xff1a;VueAPI Vue 使用 axios 库进行网…

如何在Unity中实现MVC模式?

MVC是什么&#xff1f; ​ MVC即Model View Controller&#xff0c;是模型(model)【数据层】&#xff0d;视图(view)【表现层】&#xff0d;控制器(controller)【逻辑层】的缩写。主要应用于网站开发&#xff0c;在游戏开发方面&#xff0c;因为不同游戏的需求、功能不尽相同&…

数字化转型迫在眉睫,企业应该如何面对?

火热的数字化转型&#xff0c;在国企、央企公布数字化转型规划后&#xff0c;进一步向各行各业开始扩散&#xff0c;吸引了很多对于数字化并不熟悉的企业。这些企业大多没有一个确定的目标&#xff0c;只是想要让企业完成转型改革&#xff0c;所以对于怎样做没有什么好的规划。…

Unity3d C#实现基于SocketIOUnity的与后端(node.js为例)Socket通信功能(含工程)

#前言 该功能主要是项目上的需求&#xff0c;按后端的需求就是我们通过SocketIO进行通信&#xff0c;之前游戏通信功能大多是基于原始的Socket进行封装&#xff0c;需要对包体进行设计&#xff0c;还需要粘包拆包等系列操作&#xff0c;属实有点麻烦。这次尝试了SocketIOUnity的…

Exynos_4412——RTC实验

目录 一、ADC小作业 二、RTC简介 三、Exynos_4412下的RTC控制器 四、RTC中的寄存器 五、RTC编程 六、RTC小作业 一、ADC小作业 电压在1501mv~1800mv时&#xff0c;LED2、LED3、LED4、LED5点亮 电压在1001mv~1500mv时&#xff0c;LED2、LED3、LED4点亮 电压在501mv~1000m…

什么是芯片老化测试?芯片老化测试系统NSAT-2000解决方案

随着半导体电子技术的进步&#xff0c;老化测试已成为保证产品质量的关键流程。除了半导体元件外&#xff0c;PCB、IC 和处理器部件也都需要在老化条件下进行测试。本篇文章纳米软件Namisoft小编将带大家分享一下关于芯片老化测试系统的相关知识。 一、什么是芯片老化测试&…

开发工具篇第十二讲:常用开发库 - Lombok工具库详解

开发工具篇第十二讲&#xff1a;常用开发库 - Lombok工具库详解 Lombok是一款非常实用Java工具&#xff0c;可用来帮助开发人员消除Java的冗长代码&#xff0c;尤其是对于简单的Java对象&#xff08;POJO&#xff09;。实际上我并不推荐使用Lombok&#xff08;不主动使用它&…

CANoe测试TC8

OPEN联盟发布的TC8是目前行业内关于车载以太网的标准测试规范之一。 CANoe环境需要硬件和软件: 硬件是CANoe设备&#xff0c;用来连接电脑和DUT&#xff0c;TC8测试的是以太&#xff0c;那么CANoe设备必须支持以太才行&#xff0c;目前VN5640以上都是支持的。 软件需要安装CANo…

对git rebase 和git merge的理解

一、是什么 在使用 git 进行版本管理的项目中&#xff0c;当完成一个特性的开发并将其合并到 master 分支时&#xff0c;会有两种方式&#xff1a; git mergegit rebase git rebase 与 git merge都有相同的作用&#xff0c;都是将一个分支的提交合并到另一分支上&#xff0c;…

物联网技术在地下综合管廊智能化建设中的应用实例分析

摘 要:物联网是21世纪传感技术、通信技术、信息技术的应用大集成利用物联网技术实现地下综合管廊的智能化管理符合经济和城市规划发展的需要分析了物联网技术的特点及地下综合管廊建设中物联网技术的应用并结合物联网技术在地下综合管廊建设的应用实例对物联网技术在地下综合…

Qt扫盲-Windows任务栏使用总结

Qt扫盲-Windows任务栏使用总结一、概述二、覆盖图标和进度指示器三、跳转列表四、缩略图工具栏一、概述 任务栏为用户提供了访问桌面上打开的应用程序的权限。Windows自动在任务栏上创建用于访问应用程序窗口的按钮。 从 Windows 7到Windows10 都有效果。就是在任务栏上的一个…

基于springboot框架个人博客管理系统

一、项目简介 本项目是一套基于springboot框架实现的个人博客管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&a…

头歌:UDP Ping程序实现 客户端创建UDP套接字

头歌平台&#xff1a;头歌实践教学平台 (educoder.net)创建数据包套接字套接字 Socket 实质上提供了主机间进程通信的连接点。进程通信之前&#xff0c;双方首先必须各自创建一个连接点,否则是没有办法建立联系并相互通信的。一个完整的 Socket {协议,本地地址,本地端口,远程地…