面向对象编程:封装、继承、多态
一、封装
将类的某些信息隐藏在类的内部,不允许外部程序直接访问,通过该类提供的方法对隐藏的信息进行相应的操作
1.将属性用private进行修饰
2.外部根据类中提供的set和get方法对属性进行相应的操作
通过封装保证了代码的安全性
二、this关键词
局部变量:在方法中定义的
全局变量:在类中定义的
1.this关键字指代的是当前对象,this.属性名 访问的是全局变量对应的值
2.this可以显示调用某个具体的构造方法,this(参数)根据参数的个数和对应的类型调用对应的构造方法
注意点:每次new都产生一个新的对象
Person person = new Person();
Person person1 = new Person();
产生了2个Person对象,变量person中保存的是对象的内存地址
三、继承
通过继承可以让子类具有父类的属性和方法,子类也可以追加自己的属性和方法
语法:class A extends B 其中A是子类,B是父类
继承中成员访问的特点:
在子类中访问一个变量,采用的是就近原则
1、在子类的局部范围内找,找到了就输出
2、在子类的属性或者成员范围内找,找到了就输出
3、在父类的成员变量范围内找
注意事项:
1、java只支持单继承,不支持多继承,一个类只能有一个直接的父类
2、java中支持多层继承
A extends B B extends C
3、如果一个类没有显示的声明其父类是谁,默认的父类是Object
重写:当子类从父类中继承来的方法不满意时,子类可以对该方法进行重写
私有方法(被private修饰的方法)不能被重写
super关键字
super在java中表示父类对象,this表示本类对象(成员方法、成员变量、构造方法)
构造方法:
先执行父类中的构造方法,然后再执行本类中的构造方法
super(参数) 显示调用父类中的某个具体的构造方法
this(参数) 显示调用本类中的某个具体的构造方法
在普通方法中,不能调用构造方法
在构造方法中调用this(参数)或者super(参数)时,必须位于第一行
四、分包
分包思想:将所有的java文件放在一个包下 不利于后期的管理和维护,将不同的java文件放在不同的包下进行管理
包:包就是文件夹 用来管理文件
分包:创建不同的文件夹 用来管理文件
定义一个包:package 包名 多级包名 使用.进行分隔 包名都是小写字母
package com.aaa
注意事项:
1、package必须位于程序的第一行
2、package语句在java文件中只能有1个
3、没有package默认表示无包名
导包:使用不同包下的类时,需要使用这个类的全类名[包名+类名]
使用Import导包 import 包名 + 类名
类与类之间的访问:
类和类在同一个包下:不需要导包 直接使用即可
类与类不在同一个包下:1、使用import 导包 import 包名+类名 2、通过全类名访问(包名+类名)
import 包名.*;代表将该包下的所有类全部导入进来,此时不需要一个一个导入
final和static关键字:
final可以修饰方法 、属性/成员变量 、类
修饰类:这个类不能被继承了
修饰方法:该方法不能被重写了
修饰属性:表示该变量是一个常量,不能再次赋值
final修饰基本数据类型和引用数据类型的区别:
修饰基本数据类型时:基本数据类型的数据值不能发生改变
修饰引用数据类型时:引用数据类型的地址的值不能发生改变,但是地址里的内容可以改变
static 静态 修饰方法和属性
修饰属性:会被当前类的所有对象共享(通过类名.属性名访问或者通过对象.属性名访问)
修饰方法:通过类名.方法名访问或者通过对象.方法名访问
推荐使用类名.属性名、类名.方法名访问