Java 5(对象)

概述
 
面向对象三个特征:封装,继承,多态。
 
找对象,建立对象,使用对象,维护对象之间关系。
 
类和对象关系:
类:对现实生活中事物的描述。即class定义的类。
对象:就是这类事物,事实存在的个体。对应于java中new的实体。  对象指向实体。  
 
定义类:就是在描述事物,就是定义属性和行为,行为对应为方法。
定义类的时候,属性如果不赋值,会自动进行初始化值,如果赋值,为显示初始化值。
 
类的属性为成员变量:作用于整个类中,存在于堆内存中。
局部变量:作用于函数中,或者语句中,存在于栈内存中。
 
main()函数为程序入口,包含main的类可以独立运行。
 
例子:
 class Zx {
  public static void main(String args[])
  {
 
   Car zx = new Car();
   zx.ran();
   zx.color="blue";
   zx.ran();
 
  }
}
 class Car
 {
  String color="红色";
  int num = 4;
  void ran()
  {
   System.out.println(color+".."+num);
  }
 }
 
匿名对象:
使用方式一:当对对象的方法治=只调用一次时,可以用匿名对象来完成。比较简单,如果对一对象进行多个成员调用,必须起名字。
使用方式二:可以将匿名对象作为实际参数进行传递。
例一:
new Car().num = 5; //成为垃圾
new Car().colur = "blue";//成为垃圾
new Car().ran();//成为垃圾,但是可以运行对象的方法
 
例二:
public static void show (Car c) //主类中的一个方法。
{
c.num = 3;
c.color = "black";
c.ran();
}
 
show(new Car()); //show 中的c 指向 new Car() ,不为垃圾,当show()生命周期结束后,变为垃圾。
 
 
特征一:封装:
 
 
封装:隐藏对象的属性和实现细节,仅提供公共的访问方式。
 
封装原则:
将不需要对外提供的内容都隐藏起来。
把属性都隐藏,提供公共方法对其访问。
 
 
private: 私有,权限修饰符,用于修饰类中成员(属性,方法)
私有是封装的一种表现形式。
例:
 class Zx {
  public static void main(String args[])
  {
 
  Persion p = new Persion();
p.age=-20;
  p.speak();
  }
}
 class Persion
 {
  int age;
  void speak()
  {
   System.out.println(age);
  }
 }
 
out:-20;
 
私有后:
 
 class Zx {
  public static void main(String args[])
  {
 
  Persion p = new Persion();
  //p.age=-20; 会报错 
  p.speak();
  }
}
 class Persion
 {
  private int age;
//可以利用一个public void getAge(int a) {   age=a;                     } 对外方法来提供传递方式。
  void speak()
  {
   System.out.println(age);
  }
 }
 
 
构造函数
特点:
函数名与类名相同
不定义返回值类型
不可写return语句
只在对象建立时执行一次
new 新实体时就会运行
当一个类中没有定义构造函数时,系统会给该类自动添加一个空参数的构造函数。 
当方法没有名字时,叫构造代码块,作用给对象进行初始化,对象一建立就运行了,而且优先于构造函数先执行。定义的是不同对象的共同性初始化内容,当构造方法重载时写。
 
例:
 
 class Zx
 {
  public static void main(String args[])
  {
  Persion p = new Persion();
 
  }
}
 class Persion
 {
 Persion()
 {
  System.out.println("Persion ran()");
 }
 }
//会直接输出"Persion ran()" ,因为对象一建立,就会调用与之对应的构造函数。作用:可以给对象进行初始化。
 
构造函数可以重载,函数名仍然为类名,根据 new Persion(int n);参数来决定执行哪个构造函数。
 
 
this:            
this代表它所在函数所属对象的引用。
 
 
1当局部变量(包含函数的大括号内)和成员变量(函数内变量)重名时,使用this
例如:
 
 
 class Zx {
  public static void main(String args[])
  {
  Persion p = new Persion("zhangxu");
  p.speak();
  }
}
 class Persion
 {
  String name;
 Persion(String name)
 {
  this.name=name;//this.name代表局部变量
 }
 void speak(){
  System.out.println(name);
 }
 }
 
2
构造函数间调用用this(name)初始化,this 语句只能定义在构造函数的第一行。
 
3
当定义类中功能时,但凡本类功能内部使用了本类对象,这个时候用this表示这个对象
 
 class Zx {
  public static void main(String args[])
  {
  Persion p1 = new Persion(20);
  Persion p2 = new Persion(25);
  boolean v = p1.compare(p2);
  System.out.println(v);
  }
}
 class Persion
 {
  private String name;
  private int age;
  Persion(int age)
  {
   this.age=age;
  }
  Persion(String name)
  {
   this.name=name;
  }
  Persion(String name,int age)
  {
   this.name=name;
   this.age=age;
   
  }
 
  public boolean compare(Persion p)
  {
  rerturn this.age==p.age;
  }
 }
 
 
 
 
 
 
 
 
 
 
 
posted @ 2015-07-07 20:32  hitz&x  阅读(164)  评论(0编辑  收藏  举报