1.构造方法


(1)定义:


        ①方法名与类名相同


        ②无返回值类型


        ③不能使用return返回一个值


满足以上三个条件的方法称为构造方法。对类实例化为一个对象时会自动调用构造方法。


(2)构造方法的重载:


一个类中可以定义多个构造方法,只要每个构造方法的参数类型和参数个数不同即可。


class  
 Perso{
 
         String  
 name  
 ;
 
          
 int  
 age 
 ;
 
          
 //定义两个参数的构造方法
 
         
 public  
 Perso(String  
 con_name 
 , 
 int  
 con_age 
 ){
 
         
 name 
 = 
 con_name 
 ;              
 //为name属性赋值
 
         
 age 
 = 
 con_age 
 ;               
 //为age属性赋值
 
        }
 
        
 //定义一个参数的构造方法
 
        
 public  
 Perso(String  
 con_name 
 ){
 
        
 name 
 = 
 con_name 
 ;        
 //为name属性赋值
 
       }
 
        
 public  
 void  
 speak(){
 
               
 //打印name,age的值
 
              System. 
 out 
 .println( 
 "大家好,我叫" 
 + 
 name 
 + 
 "今年" 
 + 
 age 
 + 
 "岁!" 
 );
 
       }
 
       }
 
public  
 class  
 day01 {
 
        
 public  
 static  
 void  
 main(String[]  
 args 
 ) {
 
//            分别创建两个对象p1,p2
 
       Perso  
 p1 
 = 
 new  
 Perso( 
 "陈杰" 
 );
 
       Perso  
 p2 
 = 
 new  
 Perso( 
 "李芳" 
 ,18);
 
//     通过对象调用speak()方法
 
        
 p1 
 .speak();
 
        
 p2 
 .speak();
 
//     分别访问p1,p2两个对象的属性
 
       System. 
 out 
 .println( 
 p1 
 . 
 name 
 );
 
       System. 
 out 
 .println( 
 p2 
 . 
 name 
 + 
 p2 
 . 
 age 
 );
 
       }
 
}


运行后的结果是:


大家好,我叫陈杰今年0岁!

大家好,我叫李芳今年18岁!

陈杰

李芳18


2.this关键字


...(类中的变量称为成员变量)


...(方法中的变量称为局部变量)


①JAVA中提供了一个关键字this,通过this关键字可以明确地访问一个类的成员变量,解决与局部变量名冲突的问题。


②也可以通过this关键字调用成员方法。


③可调用构造方法:只能在构造方法中调用其他构造方法,不能在成员方法中使用。 使用this调用构造方法的语句必须位于第一行,且只能出现一次。 




3.static 关键字


在JAVA中,定义了一个static关键字,它用于修饰类的成员,如成员变量、成员方法以及代码块等。


(1)静态变量:


 在一个JAVA类中,可以使用static关键字来修饰成员变量,该变量被称作静态变量。 静态变量可以被所有实例共享 ,可以使用“类名.变量名”的形式来访问。


class  
 Student{
 
        
 static  
 String  
 schoolName 
 ;            
 //定义静态变量schoolName
 
}
 
public  
 class  
 day03 {
 
   
 public  
 static  
 void  
 main(String[] 
 args 
 ){
 
         Student  
 stu1 
 = 
 new  
 Student();           
 //创建学生对象
 
         Student  
 stu2 
 = 
 new  
 Student();
 
         Student. 
 schoolName 
 = 
 "传智博客" 
 ;              
 //为静态变量赋值
 
         System. 
 out 
 .println( 
 "我的学校是" 
 + 
 stu1 
 . 
 schoolName 
 );    
 //打印第一个学生对象的学校
 
         System. 
 out 
 .println( 
 "我的学校是" 
 + 
 stu2 
 . 
 schoolName 
 );     
 //打印第二个学生对象的学校
 
  }

 
}



运行结果为:


我的学校是传智博客


我的学校是传智博客


2)静态方法:


在类中定义的方法前加上static关键字,在不创建对象的情况下就可以调用某个方法,换句话说也就是使该方法不必和对象绑在一起。


同静态变量一样,静态方法可以使用“类名.方法名”的方式来访问,也可以通过类的实例对象来访问。


class  
 Person{
 
      
 public  
 static  
 void  
 sayHello(){      
 //定义静态方法
 
           System.out.println("hello");
 
     }
 
}
 
public  
 class  
 day03 {
 
   
 public  
 static  
 void  
 main(String[] 
 args 
 ){
 
       Person. 
 sayHello 
 ();                
 //调用静态方法
 
  }    
 
}


(3)静态代码块:


在Java类中,使用一对大括号围起来的若干行代码被称为一个代码块,用static关键字修饰的代码块称为静态代码块。  当类被加载时,静态代码块会执行,由于类只加载一次,因此静态代码块只执行一次。 在程序中,通常会使用静态代码块来对类的成员变量进行初始化。