对象是对类进行具体化;类是对对象进行抽象化。
1.类
定义:是对同一类别的众多对象的一种抽象,同时还是用来生成对象的一种模板
约定:类名,首字母要大写,如果是由多个单词组成,每个字母首字母都大写
class 类名{
访问修饰符 成员变量的定义;
访问修饰符 成员函数的定义;
}
访问修饰符:默认,public,pricate,protected
public:公有的,能被所有位置的对象调用
默认:能被当前包内所有的对象调用
pricate:私有的,只能被当前class花括号之内的代码访问,其他位置都不能调用
protected:继承,只要是继承关系就能调用,无论是在当前包还是其他包;只要不是继承关系就不能调用,不管是不是在同一个包中
类的实例化: 用类来生成对象
类名 变量名 = new 类名();
成员变量:(属性)访问修饰符 类型 变量名;
a.成员变量的定义,如果不赋初始值,会使用默认值。而函数内的局部变量不赋值初始值会出问题。
b.成员变量可以被当前类的所有的成员函数都可以调用。而函数里面的变量只能在当前花括号中可以使用。
成员函数:【方法(属性方法和行为方法)】访问修饰符 返回类型 函数名(形参){函数体};
a.普通成员函数。(属性方法,行为方法)
b.构造函数。
构造函数:
必须与类名相同;不能有返回值;会被自动执行,对象new出来的时候会自动执行;一般都是pubilc
2.对象
包括:属性(名词形容词),行为(动词)
对象初始化的次序:当我们new一个对象的时候。
1.执行成员变量的定义。
2.构造函数的内容。
构造函数与成员变量初始化的执行次序:当我们new一个对象的时候
先执行成员变量定义--构造函数
3.方法的重载
函数名相同,类型不同(包括数量,类型,位置)
两个及以上的函数(函数名相同,类型不同的函数)就形成了函数重载
函数重载只和函数名,类型有关;和函数的返回类型无关
重载之后的函数调用:
根据调用函数的实参决定调用哪一个重载函数
无论是构造函数还是普通函数都能进行重载。
this. 指的是对象。
其中
public GouZao(String name){
this.name=name;
}
public GouZao(){
}
这两个函数就形成了函数的重载,并且是构造函数的重载
当new一个新的对象的时候,会根据实参来决定调用哪个函数
结果: