Menu Close

Java命令行参数、this关键字

Java中的命令行参数是执行程序时传递给程序的信息。传递的信息存储在传递给main方法的字符串数组中,并作为字符串存储。当程序运行时,它是直接在命令行中紧随程序名称之后的信息。

示例在运行类Demo时,可以将命令行参数指定为

java Demo arg1 arg2 arg3 …

Java中的命令行参数:

  • 命令行参数可用于在启动应用程序时指定配置信息。
  • Java命令行参数的数量没有限制。您可以指定任意数量的参数
  • 信息以字符串形式传递。
  • 它们被捕获到main方法的String args中

示例:学习java命令行参数

步骤1)将以下代码复制到编辑器中。

class Demo{
    public static void main(String []args){
        System.out.println("参数1 = "+args[0]);
        System.out.println("参数2 = "+args[1]);
    }
}

步骤2)保存并编译代码  javac Demo.java

步骤3)执行代码 Java Demo apple orange

Java命令行参数

步骤4)获得如下输出。

参数1  = apple
参数2 = orange

 

Java中的this关键字是一个引用变量,它引用方法或构造函数的当前对象。在Java中使用此关键字的主要目的是消除类属性和具有相同名称的参数之间的混淆。

以下是Java中’this’关键字的各种用法:

  • 可以用来引用当前类的实例变量
  • 它可以用来调用或初始化当前的类构造函数
  • 可以在方法调用中将其作为参数传递
  • 可以在构造函数调用中将其作为参数传递
  • 它可以用来返回当前的类实例

通过示例了解“ this”关键字。

 

Java这个关键字示例
Java this关键字示例

 

  1. Class:Account
  2. 实例变量:a和b
  3. setData方法:设置a和b的值。
  4. showData方法:显示a和b的值。
  5. main方法:在这里我们为Account类创建一个对象,并调用方法设置数据和显示数据。

让我们编译并运行代码

我们对A和B的预期输出应分别初始化为值2和3。

output:

Value of A =0
Value of B =0

但是值是0,为什么呢?让我们调查一下。

在“setData”方法中,参数被声明为a和b,而实例变量也被命名为a和b。

但是在执行过程中,编译器感到困惑。分配的运算符左侧的“ a”是实例变量还是局部变量?因此,当调用方法设置数据时,它不会设置’a’的值。

解决方案是使用“ this”关键字

public void setData(int a, int b) {
    this.a = a;
    this.b = b;
}

在代码执行期间,当对象调用方法“ setData”时。关键字“ this”代替了“ obj”对象。

所以现在编译器知道了

  • this.a是实例变量。
  • 而右边的“ a”是局部变量

变量已正确初始化,并显示了预期的输出。

%title插图%num

假设您足够聪明,可以为实例变量和方法参数选择不同的名称,也可以达到预期效果。

示例:

class Account {
    int a;
    int b;

    public void setData(int c, int d) {
        a = c;
        b = d;
    }

    public void showData() {
        System.out.println("Value of A =" + a);
        System.out.println("Value of B =" + b);
    }

    public static void main(String[] args) {
        Account obj = new Account();
        obj.setData(2, 3);
        obj.showData();
    }
}

output:

Value of A =2
Value of B =3

Posted in Java

发表评论

相关链接