首页 > 代码库 > TheFourthJavaText

TheFourthJavaText

在Java语言中,在一个类的内部静态方法是无法直接访问该类的非静态成员的,这一点和C++一致。比如下面的代码:

import javax.swing.JOptionPane;

public class Count {

 

    public static void main(String[] args) {

       // TODO Auto-generated method stub

       fun();

    }

    void fun(){

       JOptionPane.showMessageDialog(null, "调用而非静态函数!");

    }

}

这时,编译器是会报错的:“Cannot make a static reference to the non-static method fun() from the type Count”。但是,并非没有办法让静态方法访问该类的静态成员,看下面的代码:

import javax.swing.JOptionPane;

public class Count {

 

    public static void main(String[] args) {

       // TODO Auto-generated method stub

       Count t = new Count();

       t.fun();

    }

    void fun(){

       JOptionPane.showMessageDialog(null, "调用而非静态函数!");

    }

}

这段代码执行是没有问题的,结果如下:

 技术分享

 

由以上两个实例可以看出,在一个类的非静态方法中,如果想要访问该类的非静态成员,必须先在该方法内部声明该类的对象,然后通过对象访问非静态成员。

 

 

生成随机数,数学公式为xn+1 = (a*xn + c) mod m;所以自己写随机数生成代码的时候,要自己指定一个x,还要手动输入三个值,这里用a,c,m代替。这三个数中,m应该尽量较大,因为m的值决定了随机数的范围。而且如果m太小,则随机数重复的概率就会增大。而且每次输入的a,c,m的值应该用所不同,如果每次输入的这三个值都相同,那么每次生成的随机数也都相同。

 

 

Java中方法的重载,方法重载是指多个方法可以使用相同的方法名。虽然方法名可以相同,但这些方法参数必须不同,或者是参数个数不同,或者是参数类型不同,或者是参数排列不同。参数表完全相同,而只用返回值不同的同名方法会发生编译错误。重载虽然表面上没有减少编写程序的工作,但实际上重载使得程序实现方式边的简单。只需要记住一个方法名,就可以根据不同的输入类型来选择方法的不同版本。

TheFourthJavaText