《明解Java》笔记:Java基础篇_面向对象
#封装
##将类的某些信息隐藏起来,在设置访问的接口
##(通俗的讲设置访问权限)
访问权限:public、protected、默认、private
- private 代表私有的意思
- get 、set方法
#get方法 set略 public void setName(String name){ this.name = name; ##this谁调用我我就代表谁! } public String getName(String name){ this.name = name; }
package
定义包:
package 包名;
注意:1.必须放在Java源文件中的第一行
2.一个Java源文件中只能有一个package
3.包名全部英文小写
4.命名方式:域名倒序+模块+功能
导包:
import 包名.类名;
系统常用包
java.lang 包含基础类
java.util 包含各种工具类
java.io 包含输入、输出功能
#static
《java编程思想》P86说到:
“static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。
而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。
这实际上正是static方法的主要用途。”
而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。
这实际上正是static方法的主要用途。”
# 注意:
静态成员随类的加载产生(只会调用一次),直至类销毁才回收(生命周期长)
不存在:静态的类、静态的局部变量、静态方法不能访问 非静态成员/方法
#关于静态的初始化
顺序: ①:static 随着类的加载而加载只执行一次 ②:构造代码块 随类测实例化而加载(new一次执行一次) ③:构造方法 类的实例化new一次执行一次 ④:方法调用 类名.方法名
#继承
#所谓继承将自己的特性继承给自己的后代
#关键字extends
特点:利于代码复用,缩短代码周期
1.重写与重载
满足以下条件称之为重写:
a.同一个类
b.方法名相同,参数列表不同(参数顺序,个数,类型) !与参数名无关
c.方法返回值,访问修饰符任意
重载:
a.满足继承关系的子类中
b.方法名,参数个数,顺序,类型与父类相同
c.放回值类型与父类兼容(访问修饰符的限定范围>=父类方法)
2.super 和 this
super.使用
父类对象的引用
访问父类的成员方法
访问父类的成员属性
访问父类的构造方法
this.使用
当前类对象的引用 \
访问当前类的成员方法
访问当前类的成员属性
访问当前类的构造方法
二者使用请注意调用范围 !!!
注意:不能再静态中使用super和 this
3.final
a.修饰类表示不允许被继承
b.修饰方法表示不允许被子类重写
c.修饰变量表示不允许修改
d.可以配合static使用(static修饰只执行一次的方法或属性)
注意:final修饰的方法可以被继承
修饰的引用类型的变量:初始化之后不能再指向另一个对象,但指定对象的内容是可以发生改变的 !!!~
#多态
多态存在的三个必要条件
一、要有继承;
二、要有重写;
三、父类引用指向子类对象
一、要有继承;
二、要有重写;
三、父类引用指向子类对象
向上转型(父类指向子类对象)
可以调用子类重写父类的方法以及父类派生的方法
无法调用子类独有方法
注意:父类中的静态方法无法被子类重写,所以向上转型之后,只能调用父类原有的父类静态方法
向下转型(子类指向父类对象)
可以调用子类特有的方法(子类引用调用父类方法?)
满足条件才能进行强转
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
可以调用子类重写父类的方法以及父类派生的方法
无法调用子类独有方法
注意:父类中的静态方法无法被子类重写,所以向上转型之后,只能调用父类原有的父类静态方法
向下转型(子类指向父类对象)
可以调用子类特有的方法(子类引用调用父类方法?)
满足条件才能进行强转
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~