public,private,protect,static,非static的理解

一、public类和非public类
首先,修饰类和属性的修饰词的适用范围:

public,公共的,表明修饰的类和变量是公开的,所有的类都可以调用;
protected,受保护的,只有本包中的类才能调用;
privated,私有化的,只有在本类中才能被调用。
然后,我们在同一个java文件中,经常可以看到一个public Class,下面接了很多Class;
它们之间的区别是:
加public表示是全局类,这个public类可以被所有类调用,即可以import导包到任何类中;
其余的没加public的表示保留类,只能被本包中的其他类调用。(不加public其实默认就是protected)

二、static属性和非static属性
由static修饰的方法和形参,都是面向类的,不面向对象;
这句话怎么理解呢?

  1. 一方面,调用static方法只需要:类.静态方法名( ) 即可;
    而非静态方法(即成员方法,)是面向对象的,调用成员方法时,
    必须先用构造器引入实参后创建对象,再由对象.成员方法名( ) 调用。

  2. 另一方面,static变量对类所创建的对象都是相同的值,一个类一个值,不因对象的改变而改变
    eg:Person类,里面有三个参数,static country,name和age都是非静态的;
    用构造器引入实参后创建了5个对象,可能这5个对象的name和age都不同,
    但是这5个对象有一个共同的country,都是中国人。

public,private,protect,static,非static的理解
public,private,protect,static,非static的理解
当我们在别的类new 对象的时候默认就启用了创建类的构造方法,然后就帮我们创建了对象了。