面向对象概念
一切客观存在的事物都可称为对象
面向对象三大特征
封装 继承 多态
类的组成
成员变量
成员方法
成员变量定义 数据类型 变量名;
成员方法定义 修饰 返回值类型 方法名(){方法体}
类的使用:
创建对象: 语法: 类类名 对象名 = new 类类型名();
给成员变量进行赋值 语法: 对象名.变量名 = 变量值;
成员方法的调用 语法: 对象.方法名();
方法的定义:
普遍方法的定义
声明语法: 修饰符 返回值类型 方法名(){
//方法体
}
有参方法:
声明语法: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,....){
//方法体
}
带有返回值得方法:
声明语法: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,....){
//方法体
return 表达式;
}
return 关键之的作用:
1.将结果返回给被调用者
2.终止方法的执行
方法的重载:
在同一个类中有多个方法 ,且方法名相同, 参数列表不同
构造方法:
构造方法的声明语法:
修饰符 方法名(){
//我是一个无参的构造方法
}
构造方法的特点:
构造方法不能有返回值,包括void也不能出现
构造方法的方法必须与类名保持一致
构造方法的作用
构造方法用于初始化对象(初始化成员变量)
构造方法与普通方法的区别
构造方法创建对象时就会被调用
普通方法需要用到时才调用
构造方法只能被调用一次
普通方法可以多次调用
this关键字
this 关键字 指向当前类对象
this关键字作用:
1,当成员变量与局部变量重名是可以使用this关键字来区分
2,可以用来调用当前类的构造方法
封装:
封装的作用
将数据进行安全保护
封装的分类
属性的封装
private 数据类型 变量名;
示例: private String name;
方法的封装
private 返回值类型 方法名(参数列表){
方法体
}
属性一旦封装外界无法访问 必须提供get 和set方法
Get方法示例:
public String getName(){
return name;
}
Set 方法示例:
public void setName(String name){
This.name = name;
}
et方法作用 给成员变量经行赋值
Get 方法作用 获取成员变量值
继承:
什么是继承:
一个现有的类派生一个新生的类 ,新生的类称为子类,现有的类称为父类(子子承父业)
继承语法:
修饰符 class 子类名 extends 父类名 { 类体}
继承只能继承父类飞非私有的属性和方法
Java中继承只能但继承,不直接支持多继承(多继承方式是以多实现方式体现)
单继承方式:一个子类只能有一个直接父类
多继承方法:一个类有多个直接父类
Java中支持多重继承
例如: C继承B, B 继承A
Java中的继承体系
了解最顶层父类功能,创建最子子类对象
方法的重写
重写要求:
必须先有继承
子类修饰符必须大于或等于父类的修饰符
方法名返回值类型参数列表必须保持一致
重写与重载的区别
1.重载不需要继承
重写必须继承
2.重载与修饰符无关
重写修饰符必须大于或等于父类修饰符
3.重载, 在同一个类中 有多个方法 方法名必须相同,参数列表不同
重写,方法名,参数列表,参数的兼容性,必须与父类保持一致;
final关键字 (最终的)
final 可以用来修饰成员变量,方法 ,类
使用final修饰的变量称为常量 (最终的)在程序执行期间不可以发生改变
final double PI=3.14;
使用final修饰的方法不能被重写(最终的方法)
final public void a(){}
使用final修饰的类不能被继承(最终的类)
final class a{}
super关键字 代表父类空间
当父类成员与子类成放生重名时 使用super关键字进行区分,super指向父类
抽象类与抽象方法(不具体)
抽象方法的声明
* abstract(抽象)
* 抽象方法的声明
* [修饰符]abstract 返回值类型 方法名(参数列表);
* 抽象方法是没有方法体
* 在一个类中出现了抽象方法,那么这个类必须声明为抽像的类
* 抽像类的声明
* [修饰符] abstract class 类名{}
*
* 在抽象类中可以有非抽象的成员
* 在一个抽象类中 不一定全是抽象方法
* 在一个中出现了抽象方法那么这个类必须声明为抽象类
*
*
* 注意:抽象方法不能私有化
* 抽象类不能创建对象,但是可以用来声明对象
包的使用 (package)
包的作用是用来管理java文件
包的命名规范
以公司的域名倒写(建议全部小写)
示例: cn.com.bochy.包的功能名称
包的声明:
package 包名;
示例 : package cn.com.bochy.demo;
注意: 包的声明必须书写在类的第一行
包的导入:
import 包名.类名;
示例: import cn.com.bochy.zuoye.Zuoye;
或者 import 包名.*;
(导入该包下的说有类)
接口的定义
* [修饰符] interfac 接口名{
* 全局常量;
* 抽象方法;
* }
* 在接口中只能定义常量和抽象方法
* 接口不可以创建对象,应为不是一个具体的类
*
* 接口的实现
* 语法: [修饰符] class 类名 implements 接口名{
*
* }
接口的多实现
语法:[修饰符] class 类名 implements 接口名1,接口名2,接口名3,...{}
接口的多继承
语法:[修饰符] interface 接口名 extends 接口名1,接口名2,接口名3,...{}
类与接口之间 实现
接口与接口之间 继承
类与类之间 继承
注意: 当接口与类同时出现,先继承 ,在实现
接口的好处 解决单继承
接口的作用
提高程序的重用性
提高程序的可扩展性
降低程序的耦合度
实现了多继承
多态
同一件事情多种体现方式(多态的体现)
形成多态的前提
1.继承
2.重写
3.向上转型
多态的好处
1,提高了代码的重用性
2,降低了耦合度
一切客观存在的事物都可称为对象
面向对象三大特征
封装 继承 多态
类的组成
成员变量
成员方法
成员变量定义 数据类型 变量名;
成员方法定义 修饰 返回值类型 方法名(){方法体}
类的使用:
创建对象: 语法: 类类名 对象名 = new 类类型名();
给成员变量进行赋值 语法: 对象名.变量名 = 变量值;
成员方法的调用 语法: 对象.方法名();
方法的定义:
普遍方法的定义
声明语法: 修饰符 返回值类型 方法名(){
//方法体
}
有参方法:
声明语法: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,....){
//方法体
}
带有返回值得方法:
声明语法: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,....){
//方法体
return 表达式;
}
return 关键之的作用:
1.将结果返回给被调用者
2.终止方法的执行
方法的重载:
在同一个类中有多个方法 ,且方法名相同, 参数列表不同
构造方法:
构造方法的声明语法:
修饰符 方法名(){
//我是一个无参的构造方法
}
构造方法的特点:
构造方法不能有返回值,包括void也不能出现
构造方法的方法必须与类名保持一致
构造方法的作用
构造方法用于初始化对象(初始化成员变量)
构造方法与普通方法的区别
构造方法创建对象时就会被调用
普通方法需要用到时才调用
构造方法只能被调用一次
普通方法可以多次调用
this关键字
this 关键字 指向当前类对象
this关键字作用:
1,当成员变量与局部变量重名是可以使用this关键字来区分
2,可以用来调用当前类的构造方法
封装:
封装的作用
将数据进行安全保护
封装的分类
属性的封装
private 数据类型 变量名;
示例: private String name;
方法的封装
private 返回值类型 方法名(参数列表){
方法体
}
属性一旦封装外界无法访问 必须提供get 和set方法
Get方法示例:
public String getName(){
return name;
}
Set 方法示例:
public void setName(String name){
This.name = name;
}
et方法作用 给成员变量经行赋值
Get 方法作用 获取成员变量值
继承:
什么是继承:
一个现有的类派生一个新生的类 ,新生的类称为子类,现有的类称为父类(子子承父业)
继承语法:
修饰符 class 子类名 extends 父类名 { 类体}
继承只能继承父类飞非私有的属性和方法
Java中继承只能但继承,不直接支持多继承(多继承方式是以多实现方式体现)
单继承方式:一个子类只能有一个直接父类
多继承方法:一个类有多个直接父类
Java中支持多重继承
例如: C继承B, B 继承A
Java中的继承体系
了解最顶层父类功能,创建最子子类对象
方法的重写
重写要求:
必须先有继承
子类修饰符必须大于或等于父类的修饰符
方法名返回值类型参数列表必须保持一致
重写与重载的区别
1.重载不需要继承
重写必须继承
2.重载与修饰符无关
重写修饰符必须大于或等于父类修饰符
3.重载, 在同一个类中 有多个方法 方法名必须相同,参数列表不同
重写,方法名,参数列表,参数的兼容性,必须与父类保持一致;
final关键字 (最终的)
final 可以用来修饰成员变量,方法 ,类
使用final修饰的变量称为常量 (最终的)在程序执行期间不可以发生改变
final double PI=3.14;
使用final修饰的方法不能被重写(最终的方法)
final public void a(){}
使用final修饰的类不能被继承(最终的类)
final class a{}
super关键字 代表父类空间
当父类成员与子类成放生重名时 使用super关键字进行区分,super指向父类
抽象类与抽象方法(不具体)
抽象方法的声明
* abstract(抽象)
* 抽象方法的声明
* [修饰符]abstract 返回值类型 方法名(参数列表);
* 抽象方法是没有方法体
* 在一个类中出现了抽象方法,那么这个类必须声明为抽像的类
* 抽像类的声明
* [修饰符] abstract class 类名{}
*
* 在抽象类中可以有非抽象的成员
* 在一个抽象类中 不一定全是抽象方法
* 在一个中出现了抽象方法那么这个类必须声明为抽象类
*
*
* 注意:抽象方法不能私有化
* 抽象类不能创建对象,但是可以用来声明对象
包的使用 (package)
包的作用是用来管理java文件
包的命名规范
以公司的域名倒写(建议全部小写)
示例: cn.com.bochy.包的功能名称
包的声明:
package 包名;
示例 : package cn.com.bochy.demo;
注意: 包的声明必须书写在类的第一行
包的导入:
import 包名.类名;
示例: import cn.com.bochy.zuoye.Zuoye;
或者 import 包名.*;
(导入该包下的说有类)
接口的定义
* [修饰符] interfac 接口名{
* 全局常量;
* 抽象方法;
* }
* 在接口中只能定义常量和抽象方法
* 接口不可以创建对象,应为不是一个具体的类
*
* 接口的实现
* 语法: [修饰符] class 类名 implements 接口名{
*
* }
接口的多实现
语法:[修饰符] class 类名 implements 接口名1,接口名2,接口名3,...{}
接口的多继承
语法:[修饰符] interface 接口名 extends 接口名1,接口名2,接口名3,...{}
类与接口之间 实现
接口与接口之间 继承
类与类之间 继承
注意: 当接口与类同时出现,先继承 ,在实现
接口的好处 解决单继承
接口的作用
提高程序的重用性
提高程序的可扩展性
降低程序的耦合度
实现了多继承
多态
同一件事情多种体现方式(多态的体现)
形成多态的前提
1.继承
2.重写
3.向上转型
多态的好处
1,提高了代码的重用性
2,降低了耦合度