1、类与对象的小结
1、类与对象
类是一个模板:抽象,对象是一个具体的实例
2、方法
定义、调用!
3、对象的引用
引用类型: 基本类型(八种)
对象是通过引用来操作的:栈—>堆
4、属性:字段Fileld 成员变量char: u000O boolean: fales 引用: null默认初始化: 数字0 0.0修饰符 属性类型 属性名= 属性值!5、对象的创建和使用
必须使用new 关键字 创建对象,构造器 Person ginweimin = new Person ();对象的属性 ginweimin.name
对象的方法 ginweimin.dashuaige ()6、类:静态的属性 属性
动态的行为 方法
封装、 继承、多态
2、封装的详解
调用Student类的方法
public class Application {
public static void main(String[] args) {
Student s1 = new Student();
Student s2 = new Student();
s1.setName("qinweimin");
System.out.println(s1.getName());
s1.setAge(70);
s2.setAge(130);
System.out.println(s1.getAge());
System.out.println(s2.getAge());
}
}
对Student类的属性进行私有
public class Student {
//属性私有
private String name;
private int age;
//提供一些可以操作这个属性的方法!
//提供一些public的get、set方法
//get获得 这个数据
public String getName(){
return this.name;
}
//set给这个数据设置值
public void setName(String name){
this.name=name;
}
public int getAge(){
return this.age;
}
public void setAge(int age){
if (age>120 || age<0){
this.age=3;
}else{
this.age=age;
}
}
}
封装的作用及特点
1、提高程序的安全性。保护数据
2、隐藏代码的实现细节
3、统一接口
4、系统维护性增加了
3、什么是继承
调用子类的方法
继承与实际上的父子关系类似
子类可以调用父类的方法
子类继承了父亲,就会拥有父类的全部方法
public class Application {
public static void main(String[] args) {
Student student = new Student();
student.say();
System.out.println(student.money);
}
}
Student类,是Person的子类
用extends来进行划分子类
package oop.demo05;
//学生 is 人
//子类继承了父亲,就会拥有父类的全部方法
public class Student extends Person {
}
Person类
私有的东西无法被继承!
package oop.demo05;
//人
public class Person {
public int money=10_0000_0000;
public void say(){
System.out.println("覃为民嘎嘎帅");
}
}
输出结果
4、多态
import oop.demo06.Person;
import oop.demo06.Student;
public class Application {
public static void main(String[] args) {
//一个对象的实际类型是确定的
//new Student();
//new Person();
//可以指的向的类型就不确定了:父类的引用指向子类
//student能调用的方法都是自己的或者继承父类的!
Student s1 = new Student();
//Person 父类型,可以指向子类,但不能调用子类独有的方法
Person s2 = new Student();
Object s3 = new Student();
//对象能执行哪些方法,主要看左边的类型,和右边关系不大
((Student) s2).eat();
s2.run();
}
}
Person类,Student的父类
public class Person {
public void run() {
System.out.println("run");
}
}
Student类,Person的子类
import org.omg.CORBA.PUBLIC_MEMBER;
public class Student extends Person {
public void run(){
System.out.println("G");
}
public void eat(){
System.out.println("A");
}
}
多态注意事项:
1、多态是方法的多态,属性没有多态
2、父类和子类,有联系 类型转换异常! CLassCastException !
3、存在条件:继承关系,方法需要重写,父类引用指向子类对象!
eg:Father f1 = new Son(),
1. static 万法,属子类,它不属于实例
2.final 常量:
3.private方法:
@Override
@Override和注释一样,注解不影响程序逻辑
但注解可以被编译或运行,相当于嵌入在代码中的补充信息