class HasStatic{ 2. private static int x=100; 3. public static void main(String args[ ]){ 4. HasStatic hs1=new HasStatic( ); 5. hs1.x++; 6. HasStatic hs2=new HasStatic( ); 7. hs2.x++; 8. hs1=new HasStatic( ); 9. hs1.x++; 10. HasStatic.x- -; 11. System.out.println(“x=”+x); 12. }
时间: 2024-03-14 13:49:38 浏览: 16
这段代码定义了一个名为 HasStatic 的类,其中包含一个静态变量 x 和一个 main 方法。在 main 方法中,首先创建了一个 HasStatic 类的实例 hs1,并将静态变量 x 的值加 1,使其变为 101。紧接着,又创建了一个 HasStatic 类的实例 hs2,并将静态变量 x 的值再次加 1,使其变为 102。然后,又重新创建了一个 HasStatic 类的实例 hs1,并将静态变量 x 的值再次加 1,使其变为 103。接着,将静态变量 x 的值减 1,使其变为 102。最后,输出静态变量 x 的值,即 102。
需要注意的是,静态变量 x 是属于类的,而不是属于某个实例的。因此,对静态变量 x 的修改是被所有实例所共享的。在这段代码中,由于创建了多个实例,因此静态变量 x 的值被多次修改,最终的结果是 102。
相关问题
java上机实践_[转载]JAVA上机实践: 继承与接口-继承
好的,我准备回答你关于 Java 上机实践中的继承问题。
在 Java 中,继承是一种非常重要的概念,它允许我们创建一个新的类,并从现有的类中继承属性和方法。继承可以让我们更加高效地编写代码,并使代码更容易维护。
下面是一个示例代码,展示了如何在 Java 中使用继承:
```
public class Animal {
private String name;
private int age;
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
public void eat() {
System.out.println(name + " is eating.");
}
public void sleep() {
System.out.println(name + " is sleeping.");
}
}
public class Dog extends Animal {
public Dog(String name, int age) {
super(name, age);
}
public void bark() {
System.out.println("Woof!");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog("Fido", 3);
dog.eat();
dog.sleep();
dog.bark();
}
}
```
在这个示例中,我们创建了一个 Animal 类,它有一个名称和年龄属性,以及 eat() 和 sleep() 方法。然后,我们创建了一个 Dog 类,并从 Animal 类中继承了它的所有属性和方法。我们还添加了一个额外的方法 bark(),只有狗才会叫。
在主方法中,我们创建了一个 Dog 对象,并调用了它的 eat()、sleep() 和 bark() 方法。
这就是继承的基础,它非常有用,因为它可以让我们避免重复编写代码,并且使代码更加易于理解和维护。
public class Change { public static void main(String[] args) throws InterruptedException { // TODO Auto-generated method stub for (int i = 0; i < 5; i++) { } } } class Cattle extends Thread{ public void run() { Louse louse=new Louse(); System.out.println("Thread "+this.getId()+": I'm "+louse.count+" louse."); } } class Louse { public static int count=0; Louse(){ cale(); } private void cale() { count++; }
这段代码中,定义了三个类,分别是 `Change`、`Cattle` 和 `Louse`。
其中,`Change` 类中的 `main` 方法中有一个 for 循环,循环了五次。但是循环体内没有任何代码,因此该部分代码无法实现题目的要求。
`Cattle` 类继承了 `Thread` 类,重写了 `run` 方法。在 `run` 方法中,创建了一个 `Louse` 对象,并输出了当前线程的 ID 以及 `Louse` 对象的计数器值。
`Louse` 类中有一个静态变量 `count`,每次创建 `Louse` 对象时,会调用 `cale()` 方法并将计数器 `count` 值加一。
因此,如果在 `Change` 类的 for 循环中创建并启动五个 `Cattle` 对象,那么每个 `Cattle` 对象会创建一个 `Louse` 对象,并输出当前线程的 ID 以及 `Louse` 对象的计数器值。具体代码如下:
```java
public class Change {
public static void main(String[] args) throws InterruptedException {
for (int i = 0; i < 5; i++) {
Cattle cattle = new Cattle();
cattle.start();
}
}
}
class Cattle extends Thread{
public void run() {
Louse louse=new Louse();
System.out.println("Thread "+this.getId()+": I'm "+louse.count+" louse.");
}
}
class Louse {
public static int count=0;
Louse(){
cale();
}
private void cale() {
count++;
}
}
```
输出结果可能类似于以下内容:
```
Thread 11: I'm 1 louse.
Thread 13: I'm 1 louse.
Thread 12: I'm 1 louse.
Thread 14: I'm 1 louse.
Thread 15: I'm 1 louse.
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![java](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)