一 对象的创建 :
1.需要现有类
1.1 类的创建
修饰符 class 类名{
//属性
//方法
}
例如:创建一个学生类
public class Student {
String name;
int age;
public void study (){ }
}
1.2 注意
类中有很多的方法和属性
类的首字母要大写
2.对象的创建
格式:类名 对象名 = new 类名();
例如:创建一个学生对象
Student student = new Student();
二 构造方法
1.什么是构造方法?
构造方法其实就是一种特殊的方法。
但是,构造方法的名称需要和类名完全一致,而且构造方法不能有返回值,也不能有void,在不写构造方法的时候jdk自动会生成一个默认的无参构造方法。
在创建对象的时候,构造方法可以直接给对象赋值
它的作用是 : 创建对象 、 为对象赋初始化的值。
例如:创建一个学生对象
Student student = new Student(); 这样就完成了对象的创建。
Student student = new Student(ename , 18);
或者:
public class Student {
String name;
int age;
}
这是一个Student类, 它有姓名和年龄的属性,那么我们就可以创建一个有参的Student构造函数:
public Student (String ename , int eage) {
this.name = name;
this.age = eage;
}
这样我们在创建对象时,只需要:
Student student = new Student ("武相虎" , 18); 就可以给对象赋值,
对象在调用属性的时候,属性就被赋值,例如:
student.name; 打印它,输出结果就是“武相虎”。
三 this关键字
this关键字主要是解决形参和属性名字一样的问题,例如:
四 成员变量和局部变量
成员变量,定义在类中,有初始值,比如引用数据类型的成员变量初始值为null,基本类型的为0。它作用于整个类,随着对象的的存在而存在。
局部变量,定义在方法中、代码块中、形参中等,它没有初始值,不赋值不可以使用。它作用域{}之中。
五 封装
封装、继承、多态是Java的三个特征。
所谓封装,其实就是用private来把方法、对象等修饰起来,让它成为私有性的东西,这样必须通过get和set方法进行赋值和取值。
六 值传递
基本数据类型传递的是具体的值
引用数据类型传递的是值的地址
七 对象数组
就是声明一个数组Arr,用来存放对象
八 继承
有一个类Pet , 它的属性是:
String name; int age; 方法是: eat吃饭方法、sleep睡觉方法
那么现在还有一个Dog类,Dog类中也有name和age的属性,也有eat的方法,我们使用继承就不要在Dog类中重新声明这些属性,就是Dog类继承了Pet类,Dog叫子类,Pet叫父类。
继承的写法是 : public class Dog extends Pet{};
通过A extends B来实现A继承B,然而在Dog继承Pet之后,可能Pet中的eat()方法并不是完全适用于Dog类,那么这时就要对方法进行重写。
对方法进行冲写,首先两个类必须是继承关系。 其次,重新的方法名和参数列表必须完全一致。子类重写父类的方法,方法的权限修饰符不可以严于父类方法。
Dog继承Pet后成员变量的特点 :
(1) 变量名不重复 : 无影响
(2) 变量名重复 : 父类的变量使用super调用,子类的通过this调用
继承后成员方法的特点:
(1) 方法名不相同 : 没有影响
(2) 可以重写
继承后构造方法的特点:
构造方法不能被继承,但是子类在创建对象的时候,会默认先调用父类的无参构造方法 , 再调用子类的构造方法
九 super和this
this:当前对象,谁调用方法,谁就是this
super:父类
this:在当前类用,可以调用属性、方法、构造方法
super:在子类中使用,可以调用父类的属性、方法、构造方法
十 继承的特点
1.只有一个亲爹。
2.私有的属性、方法和构造函数不可被继承
十一 Object类
toString : 相当于showInfo ,是把自己的属性输出
equals : 等于,判断值