oo面向对象object oriented ;ooD面向对象设计
ooa 面向对象分析;oop:面向对象编程programing
一、类和对象
1.定义:类:类型/类别,代表一类个体;类是对象的模板/模子,对象是类的具体的实例
对象的属性/特征-----------------------------成员变量
对象的行为/动作/功能----------------------方法
//成员变量----对象的属性
String name;
int age;
String address;
//方法-----对象的行为/功能
void study(){
System.out.println(name+"在学习...");
}
void sayHi(){
System.out.println("大家好,我叫"+name+",今年"+age+"岁了,家住"+address);
}
//创建一个学生对象
Student zs = new Student();
//给成员变量赋值
zs.name = "zhangsan";
zs.age = 18;
zs.address = "河北廊坊";
//调用方法
zs.study();
zs.sayHi();
Student ls = new Student();
ls.name = "lisi";
ls.age = 25;
ls.address = "黑龙江佳木斯";
ls.study();
ls.sayHi();
//1)创建了一个学生对象
//2)给所有成员变量赋默认值
Student ww = new Student();
ww.study();
ww.sayHi();
2.方法的签名:方法名+参数列表
Aoo o = new Aoo();
o.show();
o.show("zhangsan");
o.show(25);
o.show("zhangsan",25);
o.show(25,"zhangsan");
}
3.方法的重载(overload/overloading):发生在同一类中,方法名相同,参数列表不同
void show(){}
void show(String name){}
void show(int age){}
void show(String name,int age){}
void show(int age,String name){}
//int show(){ return 1; } //编译错误,重载与返回值类型无关
//void show(String address){} //编译错误,重载与参数名称无关
二、 构造方法:
1.造函数、构造器、构建器-----------------------复用给成员变量赋初值的代码
作用:给成员变量赋初值
与类同名,没有返回值类型(连void都没有)
在创建(new)对象时被自动调用
若自己不写构造方法,编译器默认提供一个无参构造方法,若自己写了构造方法,则不再默认提供
构造方法可以重载
2.this:指代当前对象,哪个对象调用方法它指的就是哪个对象
只能用在方法中,方法中访问成员变量之前默认有个this.
public class Student {
String name; //成员变量(整个类中)
int age;
String address;
//给成员变量赋初值
Student(String name,int age,String address){ //局部变量(当前方法中)
this.name = name;
this.age = age;
this.address = address;
}
void sayHi(){
System.out.println("大家好,我叫"+name+",今年"+age+"岁了,家住"+address);
}
}
3.null:表示空,没有指向任何对象。
若引用的值为null,则该引用不能进行任何点操作了,若操作则发生NullPointerException空指针异常。