zoukankan      html  css  js  c++  java
  • java基础笔记(三)——main方法

    1.解析public static void main(String[] args)方法

    JVM在运行程序时,会首先查找main()方法作为入口,main是JVM识别的特殊方法名。

    public是权限修饰符,表明任何类或对象均可访问此方法。

    static表明main()方法是一个静态方法,即方法中的代码是存储在静态存储区的,只有类被加载后,即可使用该方法而不需要实例化对象来访问,可以直接通过类名.main()访问。

    字符串数组参数args接收开发人员在命令行状态下与程序交互的代码。

    此例为调用main()方法时传递参数的方法:

    1 public class Test{
    2   public static void main(String[] args){
    3     for(int i=0;i<args.length;i++){
    4       System.out.println(args[i]);
    5     }
    6   }
    7 }

    在控制台下,使用javac Test.java指令编译上述程序,使用java Test arg1 arg2 arg3指令运行程序,程序运行结果为:

    arg1

    arg2

    arg3

    注:

    (1)不管哪种定义方式,除了不能用abstract关键字修饰,必须保证main()方法的返回值为void,并有static与public关键字修饰。

    (2)同一个.java文件中是否可以有多个main()方法?

    虽然每个类中都可以定义main()方法,但是只有与文件名相同的用public修饰的类中的main()方法才能作为整个程序的入口方法。

    如下例,创建了一个名为Test.java的文件:

     1 class T{
     2     public static void main(String[] args){
     3         System.out.println(“T main”);
     4     }
     5 }
     6 public class Test{
     7     //程序入口函数
     8     public static void main(String[] args){
     9         System.out.println(“Test main”);
    10     }
    11 }        

    程序运行结果为:

    Test main

    (3)在java语言中,静态块在类被加载时就会被调用,会在main()方法执行之前执行。

    1 public class Test{
    2   public static void main(String args[]){
    3     System.out.println(“Hello World2”);
    4   }
    5   static{
    6     System.out.println(“Hello World1”);
    7   }
    8 }

    程序运行结果:

    Hello World1

    Hello World2

    2.一个Java文件中是否可以定义多个类?

      一个Java文件中可以定义多个类,但是最多只能有一个类被public 修饰,并且这个类的类名与文件名必须相同,若这个文件中没有public的类,则文件名随便是一个类的名字即可。当用javac指令编译这个.java文件时,它会给每一个类生成一个对应的.class文件。

    定义Derived.java为:

     1 class Base{
     2   public void print(){
     3     System.out.println(“Base”);
     4   }
     5 }
     6 public class Derived extends Base{
     7   public static void main(String[] a){
     8     Base c=new Derived();
     9     c.print();
    10   }
    11 }

      使用javac Derived.java指令编译上述代码,会生成两个字节码文件:Base.class与Derived.class,然后使用java Derived指令执行代码,此时,控制台的输出结果为:Base。

  • 相关阅读:
    Git命令与使用
    Android与WebView的JS交互
    Android 中关于硬件加速的使用和问题
    Activity-生命周期和启动模式
    Activity-恢复与保存状态或数据
    Android中Paint的一些使用心得记录
    Java中sleep,wait的区别
    C#基本类型
    LeetCode74 搜索二维矩阵
    leetcode 43 字符串相乘 java
  • 原文地址:https://www.cnblogs.com/tendo/p/10318339.html
Copyright © 2011-2022 走看看