面向对象笔记

来源:互联网 发布:新理念外语网络第一册 编辑:程序博客网 时间:2024/06/07 02:13
面向对象概念
一切客观存在的事物都可称为对象
面向对象三大特征
封装  继承  多态
类的组成
成员变量
成员方法
成员变量定义  数据类型  变量名;
成员方法定义  修饰  返回值类型 方法名(){方法体}
类的使用:
创建对象: 语法: 类类名  对象名 =  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,降低了耦合度








0 0
原创粉丝点击