java基础之面向对象的三个特性
来源:互联网 发布:编程珠玑 pdf 图灵社区 编辑:程序博客网 时间:2024/05/14 04:18
一、面向对象
面向对象是软件开发的一种方法。它具有三个基本特点:封装、继承、多态。
二、封装
1、封装:是指隐藏对象的属性和实现细节,仅对外提供共共访问方式。
2、好处:提高了代码的重用性和安全性。
3、原则:把不需要对外部提供的方法隐藏;把属性隐藏,通过公共方法对其访问。
4、程序实例:
在这个实例中我们封装了Person的一些属性,这里可以在方法中加入一些条件,如age必须大于0小于200,体现了代码的可重用性。另外如果我们某个属性不可以访问,则不写get方法即可,这里体现了程序的安全性。
class Person {private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}三、继承
1、继承:继承是对原有类功能和属性的扩充。
2、好处:提高了代码的复用性,继承和实现是多态的前提。
3、原则:java只支持单继承;支持多个实现。
4、程序实例:
class Person {String name;int age;}class Student extends Person {void study() {System.out.println("good study");}}class Worker extends Person {void work() {System.out.println("good work");}}class ExtendsDemo {public static void main(String[] args) {Student s = new Student();s.name = "zhagnsan";}}四、多态
1、多态:父类的引用指向子类的对象。
2、好处:提高了程序的可维护性和可扩展性。
3、原则:需要继承或实现接口;有覆盖操作。
abstract class Animal {abstract void eat();}class Cat extends Animal {public void eat() {System.out.println("吃鱼");}public void catchMouse() {System.out.println("抓老鼠");}}class Dog extends Animal {public void eat() {System.out.println("吃骨头");}public void kanJia() {System.out.println("看家");}}class Pig extends Animal {public void eat() {System.out.println("饲料");}public void gongDi() {System.out.println("拱地");}}class PolyDemo {public static void main(String[] args) {function(new Cat());function(new Dog());function(new Pig());}public static void function(Animal a) {a.eat();}}
0 0
- java基础之面向对象的三个特性
- java之面向对象的三个特性
- 面向对象的三个特性
- Java基础学习之--面向对象的特性:多态
- 面向对象的三个重要特性之二(多态)
- 关于java基础--面向对象的特性
- 面向对象三个特性
- 【Java基础】面向对象特性
- java-基础-面向对象特性
- 黑马程序员:Java基础之面向对象特性篇
- 黑马程序员--Java基础--面向对象之三大特性
- java基础-面向对象三大特性之继承实例
- iOS基础之路:面向对象程序设计的特性
- java基础整理5--面向对象的高级特性
- 黑马程序员--java基础--面向对象的特性
- Java中的基础----面向对象的三大特性
- Java的面向对象特性
- Java的面向对象特性
- Android各个版本 版本号对应关系表
- 问题记录,待完善
- Mbed在线编译器新手入门教程(图文)
- HTML学习笔记--超链接
- 欢迎使用CSDN-markdown编辑器
- java基础之面向对象的三个特性
- jQuery学习笔记
- 动态规划算法:硬币问题
- 利用BAT脚本实现多程序同时启动
- dark寻觅到的一个牛人的分类总结贴--关于swfupload与java整合的内容
- 从文件系统到磁盘的驱动栈
- DPDK内存管理 原文地址:http://www.cnblogs.com/jintianfree/p/4018043.html
- 项目结构分析
- STL源码剖析 - 第5章 关联式容器 - hashtable