这是下的一段源码,我觉得有问题,但是不知道怎么改....帮帮忙.初学嘛,如果能帮我详细的解释下更好
void setStr()是干嘛用的?不是有构造函数MyException赋值了吗? 程序到底是怎么执行的啊class MyException extends Exception
{
private String ss;
MyException(String s)
{
ss=s;
}
String getStr()
{
return ss;
}
void setStr(String s)
{
ss=s;
}
}
public class MyExceptionDemo
{
public static void main(String[] args)
{
try
{
throw new MyException("MyException occur");
}
catch(MyException e)
{
String ss=e.getStr()//怎么没调用void setStr()啊
System.out.println("My Exception message:"+ss);
}
}
}
void setStr()是干嘛用的?不是有构造函数MyException赋值了吗? 程序到底是怎么执行的啊class MyException extends Exception
{
private String ss;
MyException(String s)
{
ss=s;
}
String getStr()
{
return ss;
}
void setStr(String s)
{
ss=s;
}
}
public class MyExceptionDemo
{
public static void main(String[] args)
{
try
{
throw new MyException("MyException occur");
}
catch(MyException e)
{
String ss=e.getStr()//怎么没调用void setStr()啊
System.out.println("My Exception message:"+ss);
}
}
}
对象已经存在的话,可以调用setStr()方法传入参数改变成员变量的值。
MyExceptionDemo.java:23: 不兼容的类型
找到: MyException
需要: java.lang.Throwable
throw new MyException("MyException o
^
MyExceptionDemo.java:25: 不兼容的类型
找到: MyException
需要: java.lang.Throwable
catch(MyException e)
^
2 错误E:\>javac MyExceptionDemo.java
MyExceptionDemo.java:24: 不兼容的类型
找到: MyException
需要: java.lang.Throwable
throw new MyException("MyException o
^
void setStr()是干嘛用的:用来赋值的
你应该弄明白java的默认包是什么,是怎么导入的
一般是运行时,java虚拟机通过设置的classpath找到lib下的包
你想让它自动找到,就加到classpath中就可以了 你的classpath里面要加入 '.'
则在doc下到java那个文件夹那个目录,cd E:java 输入doc命令:
E:\java> javac JavaDemo.java
就好了,
加分啊,给你回答两个了
刚才错了
另外,lang不需要导入
编译时候仍然报错:
E:\>javac MyExceptionDemo.java
MyExceptionDemo.java:23: 不兼容的类型
找到: MyException
需要: java.lang.Throwable
throw new MyException("MyException occur!");
^
MyExceptionDemo.java:25: 不兼容的类型
找到: MyException
需要: java.lang.Throwable
catch(MyException e)
^
2 错误
D:\Lesson>javac Test.java //原文复制的。
Test.java:28: 需要 ';'
String ss=e.getStr()//怎么没调用void setStr()啊
^
1 错误D:\Lesson>javac Test.java //加上分号后。D:\Lesson>java Test
My Exception message:MyException occurD:\Lesson>
结论:楼主的 JDK 貌似有问题。
{
public static void main(String[] args)
{
try
{
throw new MyException("MyException occur");
}
catch(MyException e)
{
e.setStr("helloWorld");//加这么一句一切问题解决
String ss=e.getStr();
System.out.println("My Exception message:"+ss);
}
}
如果你new完了,又想改变量的值,咋办?
就用到setX方法了.