黑马程序员——Java面向对象编程思想总结
来源:互联网 发布:淘宝没评价入口 编辑:程序博客网 时间:2024/05/21 06:22
-----------android、java学习型技术博客、期待与您交流!------------
Java面向对象编程思想总结
1. 面向对象(oop)
面向对象的三大特点:发现类、发现这个类的属性、方法
Static 访问修饰符 :static表示成员变量所有的类实例所共享的数据
Static比构造函数执行级别高,每个执行项目的静态变
或者方法都是优先执行,而且只执行一次,在静态方法
中不能使用非静态变量和方法,不能在一个方法中定义。
一个静态变量!
构造函数:在每个程序中如果程序员不给这个程序定义一个无参构造的话系统会默认定义一个,如果用程序员定义了一个有参的构造那么初始化的时候里面将必须带有参数,系统将不会在给你默认定义。构造函数执行一下初始化操作。语法但是是:public 类名(){}
构造函数没有返回值类型但是有返回值。
方法重载:同一个类中如果有两个或者很多类名相同,参数个数(类型)不同的方法和构造函数的定义就是方法重载了
封装:是面向对象中三点特性之一,将一下属性封装在一些类中,不被人轻易拿出来修改;安全级别高,private 私有修饰符 protected 在同包的类中访问,在父类子类中也可以访问,
封装的好处是:隐藏类的实现细节,程序员可以在里面添加判断,取值 给值方便利于编程
继承的时候首先调用父类的构造
2. 继承
继承的关键字; extends
This是调用子类和父类所有的属性但是会就近原则去查找
Super 调用父类属性,后面为括号是调用父类构造函数,加点调用父类的属性
必须写在构造函数的第一行 否者会报错
继承的优点是:易维护 已扩展,减少很多代码复用,可以选择性重写父类方法
方法的覆盖:一.重写的方法必须要和被重写的方法名相同
二..子类重写父类方法参数列表必须相同
三.子类重写父类方法返回类型必须相同
四.子类重写父类方法访问权限不能缩小 只能扩大访问权限
抽象类:抽象类的关键字 abstract
抽象类的特点:在定义一个抽象类的时候这个类不能有static和fianl去修饰,在一个抽象类中的方法没有方法体,在一个抽象类中不一定有抽象方法但是在一个抽象方法必须在一个抽象类中!
在抽象类中子类必须将被重写,抽象类不能实例化(因为抽象类的方法没有实现方法本身)
Final :特点:用final修饰的类不能被继承, final修饰的方法不能被重写, final修饰的变量变为常量,只能赋值一次,(如果给常量第二次赋值会报不是最终赋值)
常见错误:用final修饰了一个对象 还能给这个对象赋值么?
答:可以的只是这个对象只能new一次 但是里面的属性可以进行赋值修改
3.多态
多态的特点:易扩展 不宜维护
多态的使用方法(两种):声明父类new子类对象,
把父类作为参数传递判断那个子类属于他进行new子类
当使用多态方式调用方法时,首先检查父类是否有这个方法,如果没有就会编译错误,如果有在去调用子类的的这个方法
强制转换:当父类引用子类为自动转换,当子类引用父类为强制转换
Instanceof运算符:用来判断一个对象是否属于一个类或者实现了一个接口,返回结果为true\false(通常instanceof和强制转换配合使用)
Static 方法可以被继承 但是不可以重写(override)
静态的只能访问静态的 非静态的可以访问一切
不能在静态方法中使用this关键字
4. 接口
接口特点:接口和类,抽象类是一层概念,
在接口中定义的变量将自动的转为静态常量必须在定义的时候进行赋值!
在接口中的方法全部都是抽象方法,特点和抽象方法一样,不能实例化接口,在接口中不能有有构造函数
一个接口可以实现多个接口,一个继承类可以实现多个接口.类必须实现所有的接口的抽象方法
接口提现了约定和实现相分离的原则
接口的两种功能:一.接口是一种约定,二接口是一种能力
包名命明规范:公司网站后缀.公司名称.项目租名称.包名.
Entity--------实体类(VO)
Dao----------接口
Dao.impl-----------接口的实现
接口 抽象类 类
定一个方法 选择实现 必须实现
定一个方法 定一个方法选择 如果抽象类实现了接口的方法
实现接口 只需要实现抽像方法,否者必须
实现接口和抽象类所有方法
Java和C#中的接口的不同!
Java C#
Extends 继承父接口,implement实现接口 C#中用 : 实现
接口中的变量一律是静态常量 不允许有成员变量可以有属性
默认的为publicabstract final
默认为public修饰 C#默认为public 但是不能显示
调用
可以包括静态常量和方法 不能有任何静态成员
- 黑马程序员——Java面向对象编程思想总结
- 黑马程序员-----java面向对象思想总结*
- 黑马程序员——Java面向对象编程学习总结
- 黑马程序员——java面向对象思想
- 黑马程序员——JAVA基础--面向对象思想
- 黑马程序员 Java基础——面向对象思想
- 黑马程序员---Java面向对象编程思想小结
- 黑马程序员--面向对象编程思想
- 黑马程序员---面向对象核心思想总结
- 黑马程序员-java与面向对象思想
- 黑马程序员---java面向对象思想
- 黑马程序员——Java编程语言学习总结– 面向对象(上)
- 黑马程序员——Java编程语言学习总结 – 面向对象(下)
- 黑马程序员 Java面向对象——(网络编程)
- 黑马程序员--Java面向对象——(网络编程)
- 黑马程序员---------Java面向对象——网络编程
- 黑马程序员 Java面向对象——集合框架总结
- 黑马程序员-Java基础总结04——面向对象
- 仿91助手的PC与android手机通讯(2) --- 检测是否是手机
- JS原型与原型链终极详解
- 利用MFC按钮使能(或禁用)属性使按钮变正常色(或灰色)
- [Linux系统编程]将GBK转换成UTF-8
- Senior iOS Engineer
- 黑马程序员——Java面向对象编程思想总结
- Objective-C 属性特性(assign , retain , copy , readonly , readwrite , atomic , nonatomic)
- 仿91助手的PC与android手机通讯(3) --- 检测是否已经安装驱动
- 在eclipse-php中添加svn插件
- android 如何重写imageview 让图片有圆角效果
- Hibernate学习(一)——Dao注入失败导致NullPointerException
- 如何通过代码加密对服务器安全进行保护?
- 仿91助手的PC与android手机通讯(4) --- 自动安装手机驱动
- jboss-5.1.0.GA 注册系统服务 jvm参数无效解决办法