java面向对象(上)
一、 java的面向对象设计
1. 在类中,使用this指代本类的属性和方法。这同php一样。
2. 在java中==比较的是地址,而equals比较的是值
3. 对象的比较问题,示例代码如下:
package org.demo;
class Person{
private String name;
private int age;
public Person(String name,int age){
this.setName(name);
this.setAge(age);
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public boolean compare(Person o){
if(this==o) return true;
if(this.age==o.age && this.name.equals(o.name)){
return true;
}else{
return false;
}
}
}
public class ClassCompareDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p1=new Person("guoxu",2);
Person p2=new Person("guoxu",2);
if(p1.compare(p2)){
System.out.println("是同一个人");
}else{
System.out.println("不是同一个人");
}
}
}
4.对象数组
类名称对象数组名称=new类名称[size];
这样声明的每个对象都是null,必须为其实例化。
5.构造方法的私有化,实现单例类,示例代码如下:
class PrivateTest{
static PrivateTest pr=new PrivateTest();
private PrivateTest(){
}
public static PrivateTest getInstance(){
return pr;
}
public String getHi(){
return "this is function";
}
}
public class PrivateClassDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
PrivateTest pr=PrivateTest.getInstance();
System.out.println(pr.getHi());
}
}
7.对于java中垃圾空间的释放和回收,由系统自动进行,如果你想手动释放,可以使用Systemt.gc();来释放