- class Car{
- //描述颜色和轮胎
- String color="red";
- int num=4;
- //成员方法(函数)
- void run()
- {
- System.out.println(color+".."+num);
- }
- }
- public class Lei {
- public static void main(String[] args) {
- //创建类类型变量
- Car c=new Car();
- //对象.对象成员
- c.color="blue";
- //调用类成员方法
- c.run();
- Car c2=new Car();
- c2.run();
- }
- }
成员变量作用于整个类中,局部变量作用于函数或语句中。
在内存中的位置:
成员变量:在堆内存中,因为对象的存在,才在内存中出现。
局部变量:存在于栈内存中。
匿名对象使用方式一:当堆对象的方法只调用一次时,可以使用匿名对象来完成。如果对一个对象进行多个成员调用,必须给这个对象起个名字。
匿名对象使用方式二:可以将匿名对象作为实际参数进行传递。
private:权限修饰符,私有:用于修饰类中的成员(成员变量,成员函数)。
私有只在本类中有效
- class Person
- {
- private int age;
- public void setAge(int a)
- {
- if(a>=0&&a<130)
- age=a;
- else
- System.out.println("非法年龄");
- }
- public int getAge(int a)
- {
- return age;
- }
- void speak()
- {
- System.out.println("age="+age);
- }
- }
- public class Lei {
- public static void main(String[] args) {
- Person p=new Person();
- p.setAge(20);
- p.speak();
- }
- }
之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句。
对访问的数据进行操作,提高代码健壮性。
对象一建立就会调用与之对应的构造函数。
构造函数的作用:可以用于给对象进行初始化。
构造函数的小细节:当一个类中没有定义构造函数时,系统会默认给该类加入一个空参数的构造函数。
当在类中自定义了构造函数后,默认的构造函数就没有了。
- class Person
- {
- private int age;
- private String name;
- //不同的构造函数(重构)
- Person()
- {
- System.out.println("A: name="+name+",,age="+age);
- }
- Person(String n)
- {
- name = n;
- System.out.println("B: name="+name+",,age="+age);
- }
- Person(String n,int a)
- {
- name = n;
- age = a;
- System.out.println("C: name="+name+",,age="+age);
- }
- }
- public class Lei {
- public static void main(String[] args) {
- Person p1=new Person();
- Person p2=new Person("zhang");
- Person p3=new Person("zhang",20);
- }
- }