发布网友 发布时间:2022-04-23 13:33
共1个回答
热心网友 时间:2023-07-08 16:40
首先说一下int 和public int的区别:
这个问题是作用域的问题,就是说这个变量的作用范围是多大。
public class Text{int a ;public void toString(){......}
对于这个int,他是该类的成员属性,因为没有访问修饰符,所以java默认认为他是default,也就是只有在该类中能访问,其他地方不能访问。和private相似,区别不太清楚。
public class Text{
public int a;
.....
对于这个int,由于有public修饰,所以这个变量对于所有类都是可见的,没有访问的*。
static,其实就是一个静态变量的意思。用static修饰的变量又叫类变量,他有很多特性,现在列出来。
public static int a,对于这个变量,首先他不需要一个实例化对象,也就是说不需要new 对象就可以用类名+变量名来访问这个变量,当然要看访问修饰符的*。
其次,这个变量是一个全局的变量,就是这个对象被该类的其他所有对象共有。
比如:
public class Text {
public static int a = 1;
public static void main(String[] args){
Text.a = 2; //这个就是static的作用,不需要new对象就可以访问。
Text aa = new Text();
Text bb = new Text();
//new两个不同的对象
aa.a = 3; //这个就是public的作用,说明该成员变量为对外可见。其实这么做 并不好
//现在我们想想,bb.a是多少呢?
System.out.println(bb.a);
结果就是3,因为static修饰的变量时类变量,是被该类所有对象共有,所以你在aa中修改的a的值,而aa和bb是共用这个a变量的。所以bb的a值也再变化。
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。