Java 课堂互动
我不确定标题是否准确。我有好几门课,比如电视,我想在一门课上使用它们。可以在另一个类中调用Tv中的方法吗?如果是这样,我是否需要在课堂上修改构造函数?(TS是一个接口) 我试过这个:Java 课堂互动,java,Java,我不确定标题是否准确。我有好几门课,比如电视,我想在一门课上使用它们。可以在另一个类中调用Tv中的方法吗?如果是这样,我是否需要在课堂上修改构造函数?(TS是一个接口) 我试过这个: public class RunTv { Remote r = new Remote("+"); Tv t = new Tv("+"); t.open(); } IDE提醒我“此标记后需要的标识符”“我应该修改Tv还是RunTv?是,如果方法定义中包含public,这意味着您可以在其他类中
public class RunTv {
Remote r = new Remote("+");
Tv t = new Tv("+");
t.open();
}
IDE提醒我“
此标记后需要的标识符”
“我应该修改Tv
还是RunTv
?是,如果方法定义中包含public
,这意味着您可以在其他类中创建Tv
对象后调用这些方法
public
是访问修饰符,但是只能在创建该特定类的对象后调用public方法。像这样,
Tv tv = new Tv("A", "B");
tv.open();
阅读也很好,它将指导您如何一步一步地编写Java程序。如果您的方法定义为
public
——就像您的示例中的public void open()
,您可以从另一个类中对TV对象调用这些方法
因此,在您的TvSet
课程中,在您的主要方法中:
public class TvSet {
public static void main(String[] args) {
Tv t = new Tv("+", "+");
t.open(); // this is valid
}
}
另外,如果TvSet
和Tv
在同一个包中,您可以在方法上使用默认访问修饰符,而不是public
——例如void open()
而不是public void open()
如果Tv
有这样一种方法:
private void close() {
System.out.println("CLOSED");
}
public class RunTv {
public void openNewTv()
{
Remote r = new Remote("+");
Tv t = new Tv("+");
t.open();
}
}
public class TvSet{
public static void main(String args[]){
Tv t = new Tv("+");
RunTv runTv = new RunTv();
runTv.openNewTv();
}
}
public class RunTv {
public static void openNewTv()
{
Remote r = new Remote("+");
Tv t = new Tv("+");
t.open();
}
}
public class TvSet{
public static void main(String args[]){
Tv t = new Tv("+");
runTv.openNewTv();
}
}
那么你不能这样做:
这是因为该方法是私有的,并且只能在该类中调用私有方法。第一个问题已经由冷冻豌豆的Owl和Roddy回答了,但概括地说:是的,您可以在另一个类中调用方法,只要它们是公共的,并且您有一个包含该方法的类实例 对于“
预期标识符…”
”错误的其他问题,您应该更改RunTv
不能在方法块外部调用t.open()
。如果您将其更改为以下内容:
private void close() {
System.out.println("CLOSED");
}
public class RunTv {
public void openNewTv()
{
Remote r = new Remote("+");
Tv t = new Tv("+");
t.open();
}
}
public class TvSet{
public static void main(String args[]){
Tv t = new Tv("+");
RunTv runTv = new RunTv();
runTv.openNewTv();
}
}
public class RunTv {
public static void openNewTv()
{
Remote r = new Remote("+");
Tv t = new Tv("+");
t.open();
}
}
public class TvSet{
public static void main(String args[]){
Tv t = new Tv("+");
runTv.openNewTv();
}
}
然后,无论何时调用openNewTv
方法,它都将创建Remote
和Tv
的新实例,然后在Tv
实例中调用open
方法。要调用openNewTv
,可以在main
方法中创建RunTv
的实例,如下所示:
private void close() {
System.out.println("CLOSED");
}
public class RunTv {
public void openNewTv()
{
Remote r = new Remote("+");
Tv t = new Tv("+");
t.open();
}
}
public class TvSet{
public static void main(String args[]){
Tv t = new Tv("+");
RunTv runTv = new RunTv();
runTv.openNewTv();
}
}
public class RunTv {
public static void openNewTv()
{
Remote r = new Remote("+");
Tv t = new Tv("+");
t.open();
}
}
public class TvSet{
public static void main(String args[]){
Tv t = new Tv("+");
runTv.openNewTv();
}
}
如果您不想每次打开新的Tv
时都创建一个新实例,那么可以将该方法设置为静态,这意味着它不属于任何实例,而是属于类本身(为了更好地理解这些内容,您应该阅读)
您可以将该方法设置为静态,如下所示:
private void close() {
System.out.println("CLOSED");
}
public class RunTv {
public void openNewTv()
{
Remote r = new Remote("+");
Tv t = new Tv("+");
t.open();
}
}
public class TvSet{
public static void main(String args[]){
Tv t = new Tv("+");
RunTv runTv = new RunTv();
runTv.openNewTv();
}
}
public class RunTv {
public static void openNewTv()
{
Remote r = new Remote("+");
Tv t = new Tv("+");
t.open();
}
}
public class TvSet{
public static void main(String args[]){
Tv t = new Tv("+");
runTv.openNewTv();
}
}
现在,您可以调用openNewTv
,而无需创建RunTv
的实例,如下所示:
private void close() {
System.out.println("CLOSED");
}
public class RunTv {
public void openNewTv()
{
Remote r = new Remote("+");
Tv t = new Tv("+");
t.open();
}
}
public class TvSet{
public static void main(String args[]){
Tv t = new Tv("+");
RunTv runTv = new RunTv();
runTv.openNewTv();
}
}
public class RunTv {
public static void openNewTv()
{
Remote r = new Remote("+");
Tv t = new Tv("+");
t.open();
}
}
public class TvSet{
public static void main(String args[]){
Tv t = new Tv("+");
runTv.openNewTv();
}
}
希望这有帮助。:) 我遇到了一些新问题,我已经修改了这个问题。