当前位置: 技术问答>java相关
一个声明方法的小问题:在线等待!!!!!!!
来源: 互联网 发布时间:2015-10-13
本文导语: 请看下面的程序为什么注释里的public ,static private ,protected ,public 都出错,而 int 或者 final int 是对的 import java.io.*; class father { public int mm=123; }; public class test extends father { public int mm; public test() { ...
请看下面的程序为什么注释里的public ,static private ,protected ,public 都出错,而 int 或者 final int 是对的
import java.io.*;
class father
{
public int mm=123;
};
public class test extends father
{
public int mm;
public test()
{
mm=234;
}
public int name()
{
int mm=456;
//public int nn=678;
// static int nn=789;
// private int nn=678;
int nn=678; 或者 final int nn=789;
System.out.println("nn="+nn);
return nn;
}
public static void main(String argv[])
{
test test1=new test();
test1.name(9);
}
};
还有获得方法里的变量值除了用返回值外,还有什么方法,假如有两个变量我都想要呢?
如上例name方法里的mm值如何取出来
import java.io.*;
class father
{
public int mm=123;
};
public class test extends father
{
public int mm;
public test()
{
mm=234;
}
public int name()
{
int mm=456;
//public int nn=678;
// static int nn=789;
// private int nn=678;
int nn=678; 或者 final int nn=789;
System.out.println("nn="+nn);
return nn;
}
public static void main(String argv[])
{
test test1=new test();
test1.name(9);
}
};
还有获得方法里的变量值除了用返回值外,还有什么方法,假如有两个变量我都想要呢?
如上例name方法里的mm值如何取出来
|
public java.util.Hashtalbe name()
{
int mm=456;
int nn=678
java.util.Hashtable hash = new java.util.Hashtable();
hash.put("mm",String.valueOf(mm));
hash.put("nn",String.valueOf(nn));
return hash;
}
然后在main里用hash.get("mm");和hash.get("nn")方法取
{
int mm=456;
int nn=678
java.util.Hashtable hash = new java.util.Hashtable();
hash.put("mm",String.valueOf(mm));
hash.put("nn",String.valueOf(nn));
return hash;
}
然后在main里用hash.get("mm");和hash.get("nn")方法取
|
当然不行 public ...是对于类或类成员来说的
在方法里面的都是自动变量 不可以这样声明
封装到数组或别的类里面 不可以有两个返回值的
在方法里面的都是自动变量 不可以这样声明
封装到数组或别的类里面 不可以有两个返回值的
|
static 修饰符表示该METHOD或FIELD是CLASS METHOD或CLASS FIELD,而super及this是Instance METHOD,CLASS METHOD不能访问INSTANCE METHOD及INSTANCE FIELD
|
public int name()
{
int mm=456;
//public int nn=678;
// static int nn=789;
// private int nn=678;
int nn=678; 或者 final int nn=789;
System.out.println("nn="+nn);
return nn;
}
这里几个nn都是本地变量,跟c的函数一样,local变量无法被外界访问,所以加访问修饰符有意义吗?因此,编译过不去自有过不去的道理。
另外,函数永远只能返回一个值或对象,这点在很多语言里都是一样的
{
int mm=456;
//public int nn=678;
// static int nn=789;
// private int nn=678;
int nn=678; 或者 final int nn=789;
System.out.println("nn="+nn);
return nn;
}
这里几个nn都是本地变量,跟c的函数一样,local变量无法被外界访问,所以加访问修饰符有意义吗?因此,编译过不去自有过不去的道理。
另外,函数永远只能返回一个值或对象,这点在很多语言里都是一样的