java面向对象(成员变量和局部变量)

时间:2023-02-15 13:18:43
  1. class Car{  
  2.     //描述颜色和轮胎  
  3.     String color="red";  
  4.     int num=4;  
  5.       
  6.     //成员方法(函数)  
  7.     void run()  
  8.     {  
  9.         System.out.println(color+".."+num);  
  10.     }  
  11.       
  12. }  
  13.   
  14. public class Lei {  
  15.   
  16.     public static void main(String[] args) {  
  17.         //创建类类型变量  
  18.         Car c=new Car();  
  19.         //对象.对象成员  
  20.         c.color="blue";  
  21.         //调用类成员方法  
  22.         c.run();  
  23.           
  24.         Car c2=new Car();  
  25.         c2.run();  
  26.   
  27.     }  
  28.   
  29. }  

 

成员变量作用于整个类中,局部变量作用于函数或语句中。

在内存中的位置:

成员变量:在堆内存中,因为对象的存在,才在内存中出现。

局部变量:存在于栈内存中。

 

匿名对象使用方式一:当堆对象的方法只调用一次时,可以使用匿名对象来完成。如果对一个对象进行多个成员调用,必须给这个对象起个名字。

匿名对象使用方式二:可以将匿名对象作为实际参数进行传递。

 

private:权限修饰符,私有:用于修饰类中的成员(成员变量,成员函数)。

            私有只在本类中有效

[java] view plaincopy
  1. class Person  
  2. {  
  3.     private int age;  
  4.       
  5.     public void setAge(int a)  
  6.     {  
  7.         if(a>=0&&a<130)  
  8.             age=a;  
  9.         else  
  10.             System.out.println("非法年龄");  
  11.     }  
  12.     public int getAge(int a)  
  13.     {  
  14.         return age;  
  15.     }  
  16.     void speak()  
  17.     {  
  18.         System.out.println("age="+age);  
  19.     }  
  20. }  
  21.   
  22. public class Lei {  
  23.   
  24.     public static void main(String[] args) {  
  25.         Person p=new Person();  
  26.         p.setAge(20);  
  27.         p.speak();  
  28.   
  29.     }  
  30.   
  31. }  


 


之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句。

对访问的数据进行操作,提高代码健壮性。

 

 

 对象一建立就会调用与之对应的构造函数。

构造函数的作用:可以用于给对象进行初始化。

构造函数的小细节:当一个类中没有定义构造函数时,系统会默认给该类加入一个空参数的构造函数。

当在类中自定义了构造函数后,默认的构造函数就没有了。

[java] view plaincopy
  1. class Person  
  2. {  
  3.     private int age;  
  4.     private String name;  
  5.       
  6.     //不同的构造函数(重构)  
  7.     Person()  
  8.     {  
  9.         System.out.println("A: name="+name+",,age="+age);  
  10.     }  
  11.     Person(String n)  
  12.     {  
  13.         name = n;  
  14.         System.out.println("B: name="+name+",,age="+age);  
  15.     }  
  16.     Person(String n,int a)  
  17.     {  
  18.         name = n;  
  19.         age = a;  
  20.         System.out.println("C: name="+name+",,age="+age);  
  21.     }  
  22. }  
  23.   
  24. public class Lei {  
  25.   
  26.     public static void main(String[] args) {  
  27.         Person p1=new Person();  
  28.         Person p2=new Person("zhang");  
  29.         Person p3=new Person("zhang",20);  
  30.           
  31.   
  32.     }  
  33.   
  34. }