------- android培训、java培训、期待与您交流! ----------

封装的概念:

是指隐藏对象的属性和实现细节,仅对外提供公共的访问方式.
好处:
    将变化隔离.便于使用.提高重用性,提高安全性.
封装原则:
    将不需要对外提供的内容都隐藏起来.
    把属性都隐藏,提供公共方法对其访问.
实现:
    1.用private(私有,权限控制符)修饰成员变量和函数。
    2.私有化后提供对外访问人方法。
例子:

    package com.dmm.javase;
/** 定义一个年龄属性加入逻辑判断语句并封装* */
class Person{//将属性私有化private int age;//提供set方法,用于设置和设限public void setAge(int age) {if (age >0 && age<=100) {this.age = age;}else{System.out.println("年龄错误!");}}//提供对外访问的get方法public int getAge() {return age;}}
//测试
public class PrivateTest {public static void main(String[] args) {Person p = new Person();p.setAge(50);System.out.println(p.getAge());}}

继承的概念:
    使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类
好处:
    实现代码重用,减少代码书写量,很容易修改和扩展已有的实现
坏处:
    打破了封装,因为基类向子类暴露了实现细节.白盒重用,因为基类的内部细节通常对子类是可见的
实现:
    使用extends关键字.同时,java中是单继承,多层继承.
例子:

package com.dmm.javase;
/** 定义一个person1类,有age and name.再定义一个student类继承person.实现自己特有的方法读书.* 定义一个worker类继承person,实现自己特有的方法work* */
class Person1{public int age;public String name;public void eat(){System.out.println("吃东西");}
}class Student extends Person1{public void read(){System.out.println("读书");}}
class Worker extends Person1{public void work(){System.out.println("工作");}
}

抽象的概念:
    找出一些事物相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处。
抽象类的特点:
    包含抽象方法的类必须是抽象类,抽象类不能实例化,抽象方法没有主体。通过继承实现。
接口的特点:
    全部由抽象方法组成的就是接口。接口中的修饰符必须为public.接口只能通过Implements实现。可以多实现用逗号隔开。
例子:

package com.dmm.javase;
/** 定义一个抽象类和抽象方法* */
abstract class A{public abstract void play();
}class B extends A{@Overridepublic void play() {// TODO Auto-generated method stubSystem.out.println("---实现抽象类----");}}
public class AbstractTest {}
package com.dmm.javase;
/** 定义一个接口。* */
interface USB {public abstract void show();}
class UPan implements USB{//实现接口public void show() {// TODO Auto-generated method stubSystem.out.println("-----插入U盘-----");}}
public class InterfaceTest {}

多态的概念:
    某一类事物存在的多种体现形态。
多态的体现:

父类的引用指向了自己的子类对象。父类的引用可以接受自己的子类对象。

package com.dmm.javase;class DongWU{public void jiao(){System.out.println("动物叫");}
}class Dog extends DongWU{public void jiao(){System.out.println("狗叫");}public void chifan(){System.out.println("吃东西");}
}
public class DuoTa {public static void main(String[] args) {DongWU du = new Dog();du.jiao();Dog d = (Dog) du;d.chifan();}
}

------- android培训、 java培训、期待与您交流! ----------

黑马程序员_Java面向对象四大特征相关推荐

  1. 黑马程序员_java面向对象

    面向对象概述       对于面向对象思想,强调的是对象(实体),C++,java,C#都属于面向对象语言.     特点:  1.面向对象就是一种常见的思想.符合人们的思考习惯.           ...

  2. 黑马程序员_Java面向对象_包

    7.包 7.1包(package) 对类文件进行分类管理. 给类提供多层命名空间. 写在程序文件的第一行. 类名的全称是:包名.类名. 包也是一种封装形式. 利用命令行自动生成文件夹格式:D:\jav ...

  3. 黑马程序员_java高级篇网络编程TCP实战Day8(上)

    ---------------------ASP.Net+Android+IOS开发.Net培训.期待与您交流! ----------- 黑马程序员_java高级篇网络编程TCP实战Day8(上) ( ...

  4. 黑马程序员_java自学学习笔记(八)----网络编程

    黑马程序员_java自学学习笔记(八)----网络编程 android培训. java培训.期待与您交流! 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无 ...

  5. 黑马程序员_Java基础Day05_面向对象之封装(Done)

    ------- android培训.java培训.期待与您交流! ---------- Day05开始接触到了Java核心部分--"面向对象". 面向对象是一种思考思想,是相对于早 ...

  6. 黑马程序员_JAVA之面向对象(封装,继承和多态)

    ------- android培训.java培训.期待与您交流!---------- 面向对象 一.面向对象概述 定义: 面向对象(Object Oriented,OO)是软件开过过程中使用一种思维方 ...

  7. 黑马程序员_JAVA相关基础知识

    ------- android培训.java培训.期待与您交流! -------- JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便 ...

  8. 黑马程序员_面向对象

    java是面向对象的编程,下面我想通过自己对java的学习,来谈谈对面向对象的理解.      给大家说一个非常熟悉的例子:老张开车去东北.用面向对象的方式考虑这个问题:车,找个司机,然后告诉司机我要 ...

  9. 黑马程序员_Java解析网络数据流的三种特殊方法

    Java解析网络数据流的三种特殊方法 Java作为最开放的语言,已越来越受到网络程序员的青睐.但这一青睐族有着同样的经历--曾经都为网络上通信的Java数据格式而烦恼. 笔者也不例外,曾经为此而查阅了 ...

最新文章

  1. 洛谷P4206 聪聪与可可
  2. 【Android 事件分发】事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 )
  3. Silverlight与HTML双向交互
  4. 通过七牛云建立私有图床
  5. 作者:张思思(1985-),女,博士,中国科学院北京基因组研究所生命与健康大数据中心工程师...
  6. 高考还没结束,这份试卷已经流出,你能拿多少分?
  7. 圆锥曲线解答题实用结论
  8. 机器学习入门(1、特征抽取)
  9. 大话西游2人数最多服务器,大话2大话各个服务器狂人榜排名 看大话如今服务器...
  10. 记录Android Studio KeyMap 导入的问题
  11. python 英语词汇_【我爱背单词】用Python提炼3000英语新闻高频词汇
  12. 同质化严重!购物中心如何打造差异化品牌?
  13. 如何快速搭建一个微服务架构
  14. Java学习笔记(五):一张图总结完JVM8基础概念
  15. 用浏览器轻松录制音频、视频—— MediaRecorder API
  16. win10右键卡顿原因_win10系统点击鼠标右键出现卡顿的解决方法
  17. 流放者柯南自建服务器 linux,流放者柯南个人服务器搭建教程 怎么搭建个人服务器...
  18. Virustotal的使用
  19. 【综合题】农民挤奶问题
  20. 基于遗传算法优化神经网络结构源程序

热门文章

  1. foxmail总是删除服务器已接收文件,如何设置FOXMAIL收到邮件后,服务器上邮件自动删除...
  2. BLE 蓝牙 与APP 得交互 内设 外设
  3. 信息安全服务资质CCRC和信息安全管理体系ISO27001有什么区别?
  4. 计算机反复启动开不了机,电脑反复启动开不了机
  5. 星座配对微信小程序源码
  6. 第012天:Material Design界面设计语言
  7. 视频教程-Layabox3D游戏视频教程-源码-手游开发
  8. 多个独立样本的非参数检验—两两比较--SPSS软件
  9. 关于调用萤石云ezuikit-js的视频对象销毁
  10. 斯坦福 机器学习课程汇总