zoukankan      html  css  js  c++  java
  • Java基础知识---【静态成员,封装性,包】------2015年3月6日

    为什么java中类的主函数main()需要添加static?

    解释:  

    先说一下static

           1.static 修饰的域,我们叫静态域,它是归类所有的,被所有对象所共享,只有一个
           2.static修饰的区块,域只会初始化一次
           3.static修饰的域或方法,可以直接通过类的名字加上.进行调用
           4.static修饰的方法内不能直接使用非静态成员

           static关键字,告知编译器main函数是一个静态函数。也就是说main函数中的代码是存储在静态存储区的,静态方法在内存中的位置是固定的,即当定义了类以后这段代码就已经存在了。如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示main()方法不存在。因为包含main()的类并没有实例化(即没有这个类的对象),所以其main()方法也不会存。而使用static修饰符则表示该方法是静态的,不需要实例化即可使用。

           main方法是一个程序的入口,如果写成非静态的,那么就必须实例化一个对象再来调用它,既然是入口这样肯定是不可以的;静态方法是属于类的,直接用类名就可以调用         

          static方法不需要创建对象 可以直接访问 这样main方法就不需要做特殊处理

         static方法在静态数据区中,这样就可以直接调用不需要每次调用都要重新生成。

         静态函数在调用时不用实例化

         静态,一上来就装入内存 
         main函数其实也是所在类的一个方法,就比如一个类是test,那么该类的main其实就是test.main(String[] args),众所周知如果一个方法不是静态的,则要先实例化该类,比如要这样 test t=new test(); 然后才能调用 test.main(); 
    而这对于运行一个程序的主函数来说是不现实的,所以比如把main函数定义为static,使test.main()可以直接被调用。 
    因为main就是这个类的主函数,入口,如果每次进这个入口的时候再去实例话然后再去调用这个入口方法,就很罗嗦 。

    一、静态变量

    从底层讲,静态变量一旦在类被载入时就被创建并存储于内存,只要类存在,静态变量就存在, 不管对象是否实例化。

    二、静态函数

    静态函数不能调用非静态成员,当然也不能使用this关键字。

    三、静态代码块

    处于静态代码块中的代码只能执行一次不管类的对象被创建多少次。并且静态代码块不能放在非静态函数(特别是构造函数)中执行。

    四、封装与成员访问控制符

    封装就是把类中数据成员私有化(private),这样私有成员只能在类中访问,不能被类外访问。

    类的成员控制符有public、protected、default、private。

    类的访问控制符:public、private。

    对于类而言,如果类前不加访问控制符,那么该类只能被同一个包所有类访问。如果添加public,那么可被包内包外所有类访问。

    对与成员而言,如果不加访问控制符,默认为default类型。类成员的访问特性如下:

    1.private:只能在类的内部访问

    2.default:可以在类内部访问,也可以被包中其它类访问

    3.protected:可以在类内部访问,也可以被包中其他类访问,还可以被包外的子类访问。

    4.public:可以在类内部访问,也可以被包内包外的所有其它类访问。

    四:包

    建包原因:直接建立文件在大型项目中会特别臃肿,类比操作系统中的文件夹,可以很好的管理。

    如何导入包,利用inport语句进行。

  • 相关阅读:
    每周进度条07
    软件需求模式阅读笔记06
    每周进度条06
    软件需求模式阅读笔记05
    Django之ModelForm组件
    Django的性能优化
    分页,缓存,序列化,信号
    Django补充——中间件、请求的生命周期等
    Git基础介绍和使用
    Django基础之三
  • 原文地址:https://www.cnblogs.com/khbcsu/p/4319438.html
Copyright © 2011-2022 走看看