Java入门 之 类和对象(二) - 对象

1. 类

  1.1 类的一般形式

  1.2 方法的重载(overloading)

2. 对象

  2.1 对象的创建和使用

    - 把对象a赋值给对象b,改变b的属性,a的属性也改变。说明这两个变量只向同一个对象。

package chap5;

public class HumanDemo2 {

	public static void main(String[] args) {
		//创建两个对象
		Human zs = new Human();
		Human ls = new Human();
		
		//对对象zs进行赋值
		zs.name = "zhongsheng";
		zs.sex = "male";
		zs.age = 29;
		zs.addr = "Shanghai";
		
		//把zs对象赋值给ls对象
		ls = zs;
		
		//打印赋值后的结果
		System.out.println("zs's name: ");
		System.out.println(zs.name);
		System.out.println("ls's name: ");
		System.out.println(ls.name);
		
		ls.name = "liushuang";
		System.out.println("now ls's name: ");
		System.out.println(ls.name);
		System.out.println("now zs's name: ");
		System.out.println(zs.name);
	}
}

  2.2 构造函数

    2.2.1 创建对象的语句为Human zs = new Human(); 实际上是调用了一个方法,不过这个方法是系统自带的方法,由于这个方法被用来构造对象,所以把它称为构造函数。

    2.2.2 构造函数的作用是生成对象,并对对象的实例变量进行初始化。系统自带的默认构造函数把所有的数字变量设为0,把所有的boolean型变量设为false,把所有的对象变量都设为null。

// 类的完整定义

class Human{
    
    //属性
    String name;
    String sex:
    int age;
    String addr;
    
    //构造方法
    public Human(){
        age = 0;
        sex = null;
        addr = null;
        }

    // work 方法
    void work(){
        System.out.println("I am working"):
        }

    // eat 方法
    void eat(){
        System.out.println("I am eating"):
        }
}

    2.2.3 构造函数的主要作用是用来对对象的变量进行初始化。如果不想把他们都初始化为默认值,就需要自己编写构造函数,通过有参数的构造函数可以把值传递给对象的变量。

// Human类的完整定义如下

class Human{
    String name;
    String sex;
    int age;
    String addr;

    public Human(String hName, String hSex, int hAge, String hAddr){
        name = hName;
        sex = hSex;
        age = hAge;
        addr = hAddr;
        }

    void work(){
        System.out.println("i am working");
        }

    void eat(){
        System.out.println("i am eating");
        }
}
// 创建对象(自己编写构造函数时)

Human zs = new Human("zhongsheng", "male", 29, "Shanghai");
Human ls = new Human("liushuang", "female", "25", "Shanghai");
Human asu = new Human();    //该语句会报错

    2.2.4 Java也提供了构造函数的重载,可以灵活的根据不同的需要利用不同的构造函数进行对象的创建。

    2.2.5 通过this关键字,在构造函数中调用其他的构造函数

package chap5;

class Human2{
	String name;
	String sex;
	int age;
	String addr;
	public Human2() {
		name = null;
		age = 0;
		sex = null;
		addr = null;
	}
	public Human2(String hName, String hSex) {
		name = hName;
		sex = hSex;
		System.out.println("the 2nd constructor has been called");
	}
	public Human2(String hName, String hSex, int hAge, String hAddr) {
		this(hName, hSex);    //通过this关键字调用了第二个构造函数
		age = hAge;
		addr = hAddr;
		System.out.println("the 3rd constructor has been called");
	}
	void work() {
		System.out.println("i am working");
	}
	void eat() {
		System.out.println("i am eating");
	}
}


public class HumanDemo3 {

	public static void main(String[] args) {
		Human2 zs = new Human2("zhongsheng", "male", 29, "Shanghai");
		System.out.println("zs's information: ");
		System.out.println("name: " + zs.name + "\nsex: " + zs.sex + "\nage: " + zs.age + "\naddr: " + zs.addr);

	}

}

3. 关键字 static

  3.1 静态变量

  3.2 静态方法

  3.3 静态常量

4. 参数传递

  4.1 基本类型的参数传递

  4.2 对象类型的参数传递

5. 包

  5.1 包的使用

  5.2 导入包

  5.3 在Eclipse中使用包

6. 小结

posted on 2017-11-26 15:47  你的踏板车要滑向哪里  阅读(163)  评论(0编辑  收藏  举报

导航