迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

Java 中的类字段和实例字段

作者:迹忆客 最近更新:2023/11/28 浏览次数:

本文将学习 Java 编程语言的基本术语,如 Java 中的局部变量、输入参数、类字段和实例字段。


Java 中的局部变量

范围绑定到块、方法或构造函数的变量称为局部变量。比如说,我们有一个方法,testing

我们声明一个 val 变量并将 10 分配给这个方法。在 main 块内写入 print 语句。

public class Experiment {
  public static void testing() {
    int val = 10;
  }

  public static void main(String[] args) {
    // try printing the local variable of the function demo
    System.out.printf("%d", val);
  }
}

输出:

error: cannot find symbol
      System.out.printf("%d", val);
                              ^
  symbol:   variable val
  location: class Experiment
1 error

尽管此代码中存在变量 val,但我们得到了一个错误。这里,变量 valtesting() 方法的局部变量。

由于它是在方法 testing 中定义的,所以它的范围是有限的。当 print 语句试图在这个范围之外访问这个变量时,我们会得到一个错误。

现在,在方法 testing 中声明 print 语句并从 main 块调用该方法。

public class Experiment {
  public static void testing() {
    int val = 10;
    System.out.printf("%d", val);
  }

  public static void main(String[] args) {
    // call the method
    testing();
  }
}

输出:

10

这一次,print 语句从其范围内访问变量。

现在尝试找出这段代码中的局部变量。

public class Treat {
  public static void main(String[] args) {
    for (int i = 0, i < 1; i++) {
      System.out.println("You will get a Cake if you answer correctly!");
    }
  }
}

变量 i 是一个局部变量。它的范围仅限于 for 循环。

请注意有关局部变量的以下几点:

  • 我们不能使用诸如 publicprotectedprivate 之类的访问修饰符来声明局部变量。
  • 这些变量在堆栈级别内部实现。

Java 中的输入参数

某些信息需要执行,而其他信息可能不需要。看看这个方法 welcome

public class Greet {
  // a function that does not need any parameter or information
  public static void welcome() {
    System.out.println("Hello, we are happy you visited.");
  }
  public static void main(String[] args) {
    // call the function
    welcome();
  }
}

输出:

Hello, we are happy you visited.

我们在不传递任何值的情况下调用该方法。我们不向此方法提供任何信息,它可以正常执行。

public class Test {
  // a function that needs some information/parameter
  public static void hello(int x) {
    int a;
    System.out.println("Hello, we are happy you visited.");
    if (x < 18) {
      a = 18 - x;
      System.out.printf("Please come back after %d years.", a);
    }
  }
  public static void main(String[] args) {
    int age = 2;

    // call the function
    hello(age);
  }
}

输出:

Hello, we are happy you visited.
Please come back after 16 years.

如果我们不传递 age 的值,方法 hello 将无法正确执行。

该方法通过括号内定义的变量 x 接收此值。变量 x 只不过是一个输入参数,或者简单地说,一个参数。

Java 中的输入参数或参数是用于定义方法以帮助方法运行的变量。

不要将参数与参数混合。它们具有相同的价值,但它们不是一回事。

public class Test {
  // function to add ages
  public static int totalAge(int age1, int age2) {
    return age1 + age2;
  }
  public static void main(String[] args) {
    int a1 = 10;
    int a2 = 12;

    int total = totalAge(a1, a2);
    System.out.println("Sum of ages: " + total);
  }
}

输出:

Sum of ages: 22

这里,age1age2 是输入参数。


Java 中的类字段

类中的任何变量都可以在 Java 中称为字段pricequantityname 等所有变量都是字段。

但是,请注意变量 quantitystatic 关键字开头。在定义中带有关键字 static 的此类字段在 Java 中称为类字段。

类字段在 Java 中也称为变量或静态字段

class Cake {
  int price;
  static int quantity;
  string name;
}

Java 中类字段的属性

以下几点是一个类字段:

  • 必须使用 static 关键字声明类字段。
public static NameOfClass {
  static datatype name_of_variable;
}
  • 类的许多实例共享类字段,因此类字段是内存高效的。用非常简单的话来说,一个实例字段的值对于 Java 中一个类的所有实例都是相同的。
  • 我们可以使用类的实例和类名本身来访问 Java 中的类字段。请注意,访问任何静态字段不一定需要实例。
class Cake {
  int price;
  static int quantity = 10;
  String name;

  public static void main(String[] args) {
    // create the object of Cake class
    Cake c1 = new Cake();

    // Access the class field using the object
    System.out.println(c1.quantity);

    // Access the class field using the class
    System.out.println(Cake.quantity);
  }
}

输出:

10
10

在上面的例子中,我们使用像这样的 dot 运算符 - c1.quantity 使用对象访问类字段。同样,要按类访问变量,请使用类名 Cake.quantity


Java 中的实例字段

public class Cake {
  int cost;
  String flavor;

  public Cake(int cost, String flavor) {
    this.cost = cost;
    this.flavor = flavor;
  }

  public int expense() {
    return cost;
  }

  public static void main(String[] args) {
    Cake cake1 = new Cake(1000, "Choco lava");
    Cake cake2 = new Cake(2000, "Pineapple");

    System.out.println(cake1.expense());
    System.out.println(cake2.expense());
  }
}

输出:

1000
2000

在类 Cake 中,我们有两个变量 - costflavor。我们创建 cake1cake2

这些可以为不同对象取不同值的变量称为实例变量实例字段


Java 中 Instance Field 的属性

java 中的实例字段也称为非静态变量。以下是关于实例字段的几点。

  • 实例字段不是用 Java 的 static 关键字声明的。
public class ClassName {
  datatype variable_name;
}
  • 它们不与所有实例共享。在 Java 中,每个实例都可以有其唯一的实例字段值。
  • 你看到了我们如何在类本身的帮助下访问类字段。好吧,这对于 Java 中的实例字段来说是不正确的。我们需要一个 instance/object 来访问 Java 中的实例字段。
  • 我们可以将任何访问说明符与 Java 中的实例字段一起使用。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 Java 中延迟几秒钟的时间

发布时间:2023/12/17 浏览次数:217 分类:Java

本篇文章主要介绍如何在 Java 中制造程序延迟。本教程介绍了如何在 Java 中制造程序延时,并列举了一些示例代码来了解它。

如何在 Java 中把 Hashmap 转换为 JSON 对象

发布时间:2023/12/17 浏览次数:187 分类:Java

它描述了允许我们将哈希图转换为简单的 JSON 对象的方法。本文介绍了在 Java 中把 Hashmap 转换为 JSON 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 JSON 对象的详细例子。

如何在 Java 中按值排序 Map

发布时间:2023/12/17 浏览次数:171 分类:Java

本文介绍了如何在 Java 中按值对 Map 进行排序。本教程介绍了如何在 Java 中按值对 Map 进行排序,并列出了一些示例代码来理解它。

如何在 Java 中打印 HashMap

发布时间:2023/12/17 浏览次数:192 分类:Java

本帖介绍了如何在 Java 中打印 HashMap。本教程介绍了如何在 Java 中打印 HashMap 元素,还列举了一些示例代码来理解这个主题。

在 Java 中更新 Hashmap 的值

发布时间:2023/12/17 浏览次数:146 分类:Java

本文介绍了如何在 Java 中更新 HashMap 中的一个值。本文介绍了如何在 Java 中使用 HashMap 类中包含的两个方法-put() 和 replace() 更新 HashMap 中的值。

Java 中的 hashmap 和 map 之间的区别

发布时间:2023/12/17 浏览次数:79 分类:Java

本文介绍了 Java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 Java 中 Map 和 HashMap 之间的主要区别。在 Java 中,Map 是用于以键值对存储数据的接口,

在 Java 中获取用户主目录

发布时间:2023/12/17 浏览次数:218 分类:Java

这篇文章向你展示了如何在 Java 中获取用户主目录。本教程介绍了如何在 Java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。

Java 中 size 和 length 的区别

发布时间:2023/12/17 浏览次数:179 分类:Java

这篇文章教你如何知道 Java 中大小和长度之间的区别。本教程介绍了 Java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。

Java 中的互斥锁

发布时间:2023/12/17 浏览次数:111 分类:Java

了解有关 Java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便