什么是OOP
//oop = 面向对象编程 /* oop的核心就是对象和类 ——对象是类的实例,类是对象的抽象 对象=》具体的事物:张老师、李同学、奔驰车、苹果 类=》抽象的模板:老师类、同学类、车类、水果类 现实中:我们交互的是具体的对象,总结的是抽象的类,例如你的朋友甲、乙、丙,三个对象,但都属于朋友类 计算机:计算机没有人那么智能,不懂具体的对象是什么样子,由我们告诉他类作为模板,计算机根据类去创建具体的对象 */
OOP的学习路线
//三大主线 /* 1.类和类的成员 类就是模板 类的成员:属性、方法、构造器、(内部类、代码块) 2.OOP的三大特征 封装、继承、多态 3.关键字 public private protected this super static extends instanceof interface implments class abstract */
如何设计一个类
//类是对象的抽象,那在设计时,就要根据对象抽象其特性 /* 例如,人类,Person 姓名,年龄,身高,体重.... 说话,眨眼,呼吸,学习,跑步... 名词性质的特性称之为属性,动词性质的特性称之为行为(方法) */
类的定义
public class Person{ String name; int age; }
属性
//模板中规定一类事物具有哪些名词性质的特性 /* 例如,人类的姓名、年龄;水果的重量、颜色;大楼的高度、形状等等 */
方法
//跟普通方法一致,但最好写与类相关的方法,无关方法可以在工具类中书写
构造器
//java根据类去创建对象时,使用构造器为对象的属性赋初值,还可以在构造器中写一些统一的行为 //构造器的格式 public Person(){ xxx; } /* 1.构造器又称为构造方法,但构造器没有返回值,其实就是省略了类本身这个返回值,免得你写错 2.构造器名跟类名必须一致 3.java默认为类提供一个无参构造器,如果自定义构造器就不再提供 */
定义一个对象
Person p = new Person();
封装
//利用private关键字屏蔽属性,不允许再使用对象直接调用属性 class Person{ private String name; public String getName(){ return this.name; } public void setName(String name){ this.name = name; } }
继承
//Student是Person的子类,继承Person的非私有成员,java是单继承 class Student extends Person{ }
多态
//父类引用指向子类对象 Person p = new Student();
三大特征重在要去理解,就不总结了,去百度多看,代码多写
this
/* 1.this表示当前类 2.this调用构造器 */
super
/* 1.super表示父类类 2.super调用父类构造器 */
static
//静态资源,归属于类,随着类的加载而加载
instanceof
//判断一个对象是不是类的实例
abstract
//抽象类 比类更高层次的抽象,不可以创建实例,内部可以含有抽象方法(没有方法体的方法),更加省略的模板 //抽象方法 只写方法的签名,不去写方法体 抽象类的目的就是为了让子类去继承,然后去重写父类中的抽象方法
interface
//接口 比抽象类更高层次的抽象,且屏蔽了单继承,内部方法默认就是抽象方法 使用类去实现接口,然后重写接口中的抽象方法
public、protected、private
//使用权限修饰符表明其作用范围 public 任何地方 protected 同包或者不同包的子类 private 类内 不写 同包