@[toc] 封装和继承
面向对象:
类:
是一组具有相同属性和行为的事物的集合,本质还是一种数据类型,类是抽象的
属性: 事物的静态的特征, (成员变量)
行为: 事物的动态的特征(方法,动作)
人:
属性:身高 肤色 年龄
行为:吃饭 睡觉 学习
对象:
对象是真实存在的实体,对象是具体的,是类的具体体现(对象就是类的举例)
创建和引用对象
使用对象的步骤
创建对象
类名 对象名 = new 类名();
引用对象成员:使用“.“进行以下操作
引用类的属性:对象名.属性
引用类的方法:对象名.方法名()
封装:
是面向对象的三大特征之一,
隐藏对象的属性和实现细: 将我们的成员变量私有化,修饰符为private
仅对外提供公共访问和修改方式: 给我们的成员变量提供公共访问方式,getXXX() setXXX()
set属性(): 用来设置属性值的方法
get属性(): 用来获取属性值的方法
补充: 既然封装是面向对象的三大特征之一,那么我们在使用的时候,就应该遵循一些规则(我们以后在写成员变量的时候,都要私有化,提供公共访问方式)
封装使用的步骤:
1 成员变量私有化 private
2 提供公共访问方式 getXXX() setXXX()
toString()
我们想打印引用数据类型的时候,打印的是地址值,我们可以重写toString()方法,打印对象的属性值
修饰符
访问修饰符:
1 private: 私有的,只能在本类中访问
2 default: 默认的,只能在本包中访问 (同一个文件夹中)
3 protected: 受保护的,只能在本包中访问,子类可以访问
4 public: 公共的,都可以访问
非访问修饰符:
static: 静态的,修饰成员变量和成员方法的。static修饰的成员变量和成员方法,不能直接调用非静态的成员变量和成员方法
final: 最终的,修饰类,修饰成员变量,修饰成员方法
修饰类: 不能被继承
修饰成员变量: 不能被修改,赋值一次
修饰成员方法: 不能被重写
继承:
java面向对象三大特征之一
含义:
子类继承父类,可以直接使用父类的属性和方法(主要使用方法)
父类:
有时候也会被别人叫做 超类、基类。
关键字:
extends
继承:
类和类之间的关系
一般什么时候用继承:
一般一个小的类和大的类之间这样使用。比如: Animal Dog Cat
好处是:
减少代码的冗余
特点:
1、子类可以继承父类非private属性和方法
2、子类可以有自己特有的属性和方法
3、java类的继承是单继承,但是可以多重继承
4、子类可以重写父类的方法。
包:
包的使用:
1 为了方便管理类
2 域名倒写
3 全部小写
4 import和package
本质就是一个文件夹,用来管理我们的类的,我们的类都要放在包中。我们某些相同功能的类,可以放在同一个包中
包名:
一般都是我们公司的域名倒着写 www.alibaba.com com.alibaba www.xinzhi.com com.xinzhi
import 导入包 告诉下面的代码,我要用那个包里的那个类
package 告诉我们当前的类属于那个包
完整的类名: 全限定类名
构造方法:
补充:
1 当一个类中没有定义构造方法的时候,系统会默认给该类添加一个无参构造方法
2 当一个类中定义了有参构造方法的时候,系统不会默认给无参构造方法
this和super的区别:
1 this代表本类对象(this理解为一个代词,就是创建的那个对象,new的那个对象)
2 super代表父类对象
3 属性和方法都是对象调用的,那么this和super都可以调用属性和方法
同一个类里面: 静态>代码块>构造方法
子父类里面:父类静态>子类静态>父类代码块>父类构造方法>子类代码块>子类构造方法
类创建要比对象早,static是属于类的,不属于对象。
在静态的里面不要调用非静态的,也不要用this和super