gpt4 book ai didi

java - protected 访问修饰符

转载 作者:行者123 更新时间:2023-12-03 01:45:17 25 4
gpt4 key购买 nike

我有以下两段代码:

/**
*
*/
package com.akshu.multithreading;

/**
* @author akshu
*
*/
public class MyThread extends Thread {
protected int b;

private int a;
@Override
public void run() {

super.run();

System.out.println("int a:"+a);
}

}



-----------


package com.akshu.utility;

import com.akshu.multithreading.MyThread;

public class MyUtility extends MyThread{

public static void main(String args[])
{
MyThread th1 = new MyThread();
int d =th1.b; // line1
System.out.println("int d"+d);
}

}

通过上面的代码文件,我试图理解 protected 访问修饰符的目的。在文件 MyUtility 中,我尝试引用 MyThread 类的变量 b。但它给了我以下错误:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
The field MyThread.b is not visibilty.

我担心变量 b 应该可以从子类访问,因为我已经扩展了 Mythread。但它给了我编译时错误。另外,当我在父类(super class)中将此变量声明为静态变量时,我可以直接访问它。那么当我尝试通过实例访问时我做错了什么?

最佳答案

方法 main 不是 MyThread 的明确一部分 - 如果您要实现另一个函数,例如prtintB(),您可以使用“.”直接访问。运算符(operator)。要从 main 访问它,您必须编写一个 getter 函数。

关于java - protected 访问修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15461582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com