机关函数、static关键字

    添加时间:2013-7-29 点击量:

    机关办法也称机关函数:


    每一个类都至少有一个机关办法可以隐式存在或显式存在并且可以有1-N个机关办法然则参数列表不成以一样。


         机关办法是一种特别的办法,具有以下特点。


    1机关办法的办法名必须与类名雷同。


    2机关办法没有返回类型,也不克不及定义为void


    3机关办法的首要感化是完成对象的初始化工作。


    4)一个类可以定义多个机关办法,若是在定义类时没有定义机关办法,则编译体系会主动插入一个无参数的默认机关器,这个机关器不履行任何代码。


    5机关办法可以重载,以参数的个数,类型,或分列次序区分。


    在一个类中若是不显式写机关办法,那么这个类默认就会存在一个隐式机关办法并且是无参的,一旦这个类中显式的写出一个机关办法,那么不管是有参的还是不参的,那个默认的无参机关办法就不存在了。


    所以在这建议在定义类时写一个无参机关办法。


        在实例化对象的时辰,不注解调用哪个机关办法,则默认就会调用无参的机关办法。


    定义机关办法:



     1 public class Person 
    
    2 {
    3 /
    4 无参机关办法
    5 /
    6 public Person()
    7 {
    8
    9 }
    10 /
    11 有参机关办法
    12 /
    13 public Person(String a)
    14 {
    15 System.out.println(我是一个小写字母:+a);
    16 }
    17 }


    调用机关函数:




     1 public class test {
    
    2
    3 /
    4 @param args
    5 /
    6 public static void main(String[] args) {
    7 // TODO Auto-generated method stub
    8 Person p1 = new Person();//隐式调用无参机关办法
    9 Person p2 = new Person(a);//调用有参机关办法
    10 //重视:调用了有参机关办法就不会调用无参机关办法了
    11 }
    12 }



    Static关键字


       特点:


        跟着类的加载而加载


        优先于对象的存在


        被所有对象所共享


        可以直接被对类名调用


    它可以润饰办法、成员变量全局变量,然则不克不及润饰机关办法。


    应用重视:


    静态办法只能接见静态成员,然则非静态办法可以接见静态成员


    静态办法中不成以应用thissuper关键字


    没有应用static润饰的成员变量或办法称为----->实例成员


    应用static润饰的成员变量或办法称为----->类成员


    Static润饰的办法和成员变量即可以经由过程类名调用也可以经由过程实例调用


    static润饰的办法和成员变量只能用实例来调用


    什么时辰适实用static来润饰呢?


    一般在对象类写对象办法的时辰应用


    例子:



    1 /
    
    2 无参机关办法
    3 /
    4 public static Person() //如许是错误的,不克不及润饰机关办法
    5 {
    6 System.out.println(无参机关办法);
    7 }



     1 /
    
    2 用static润饰成员变量,属于类成员
    3 /
    4 static String name; //姓名
    5 static String sex; //性别
    6 String address; //这个没有static润饰称为实例成员
    7 /
    8 润饰办法,这个办法只能调用类成员
    9 /
    10 public static void eat()
    11 {
    12 name=小李;//正确
    13 address=天上人世; //错误,不成调用实例成员
    14 System.out.println(吃饭);
    15 }
    16 /
    17 实例成员
    18 /
    19 public void walk()
    20 {
    21 name=小李;//正确
    22 address=天上人世; //正确
    23 System.out.println(走路);
    24 }


    调用:



     1 public class test {
    
    2
    3 /
    4 @param args
    5 /
    6 public static void main(String[] args) {
    7 // TODO Auto-generated method stub
    8 Person p = new Person();
    9 p.name=小明; //实例调用类成员
    10 Person.name=小李;//类名调用类成员但不成调用实例成员
    11
    12 //还有个就是匿名对象调用,就是没有名字的实例对象
    13 System.out.println(new Person().address);
    14 }
    15 }


    容易发怒的意思就是: 别人做了蠢事, 然后我们代替他们, 表现出笨蛋的样子。—— 蔡康永
    分享到: