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 你的踏板车要滑向哪里 阅读(166) 评论(0) 收藏 举报
浙公网安备 33010602011771号