一下内容是自己总结用的,只是按照自己的理解去写。参考的是菜鸟教程。
Java 是一个面向对象的语言。
OOP就是面向对象编程。
封装:在某些类里面,某些属性不想向外暴露,但是我们又想提供一个方法去访问或修改它,怎么办?
封装此刻就是解决这个问题:
如有一个Student类

public class Student{
//构造函数,可以写可以不写,不写就默认用Java提供的默认构造函数

private int number;

private String name;

public void setNumber(int number){
this.number = number;
}

public int getNumber(){
return this.number;
}

public void setName(String name){
this.number = number;
}

public int getName(){
return this.name;
}
}

此刻,Student类的俩个属性是private(私有)的,我们不能直接用:
Student stu = new Student();
stu.number = 4;
stu.name = "test";

但是方法是public(公共)的,我们可以通过调用这些方法去写入或获得这俩个私有属性:
Student stu = new Student();
stu.setNumber(4);
stu.getNumber;
stu.setName("test");
stu.getName;

这就是对类的封装,封装有什么好处?

1. 良好的封装能够减少耦合。

2. 类内部的结构可以自由修改。

3. 可以对成员变量进行更精确的控制:
类的成员变量可以成为只读或者只写的。
例如访问器getXxxx();修改器setXxxx(); 通过这些可以控制读写权限

4. 隐藏信息,实现细节:
比如这是一个类中得到生日的方法
public String getBirthday(){
return year + "-" + month + "-" + day;
}

public void setBirthday(String birthday){
//拆分字符串,分别取出年月日,给year、month、day进行赋值
}

而在外部调用这个方法的时候
this.getBirthday();
this.setBirthday("1990-9-9");

此时就体现出外部是不知道如何储存birthday这个方法的,用户只能调用它。

继承
Java里,可以让一个子类去extend(继承)一个父类,并且一个子类只能继承一个父类,
子类会继承父类的所有方法。
而在这些方法中,只要不该方法名称 和其参数类型和数量,只对方法里面的代码进行重写,则叫重写,
如果这些方法中,名称不变,但是参数类型有变,或者参数数量有变,又或者俩者都有变,则叫重载。
重写和重载是多态的一部分。

当然有可能父类是个抽喜类,子类继承抽象类则要对父类里的抽象方法加上具体的代码,如果没有则子类中的这个方法也要声明为抽象方法,子类则声明为抽象类,默认public。
由子子类去继承实现抽象方法(你也可以继续上面的情况)。

多态
一个工具,不同的使用就产生不同的结果或行为。
多用于接口?
其中重写和重载是多态的重要部分。
重写要有继承,并且发生在俩个类之间(父子类)
重载发生在一个类之间。

Java oop(一些自己的理解,并没有展开很细)的更多相关文章

  1. java oop详解

    近日来重温了一下java oop的知识.加深了对面向对象的理解.尤其时继承方面.故写一篇博客.记录一下自己的想法和心得 1.面向对象主要分为三大点(封装,继承,多态) 封装的思想促进了类的形成.相比于 ...

  2. 一篇文章带你了解Java OOP思想

    Java OOP 思想深度刨析 Java面向对象编程 面向对象编程简称OOP(Object--对象.Oriendted--导向的.Programming--程序设计) 面向对象通俗来讲,就是指使用丰富 ...

  3. 【转】关于Java的Daemon线程的理解

    原文地址:http://www.cnblogs.com/ChrisWang/archive/2009/11/28/1612815.html 关于Java的Daemon线程的理解 网上对Java的Dae ...

  4. 深入浅出OOP(六): 理解C#的Enums

    MSDN定义:枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法.  例如,假设您必须定义一个变量,该变量的值表示一周中的一天. 该变量只能存储七个有意义的值. 若要定义这 ...

  5. Java内存管理的进一步理解-模拟过程图解

    Java内存管理的进一步理解-模拟过程图解--转载 java的内存管理分为: 1.堆内存:2.栈内存:3.方法区:4.本地方法区 /* 1:方法区      方法区存放装载的类数据信息包括:      ...

  6. java 重写你可以这么理解 因为 方法名和参数类型个数相同 所以这就是重写了 然后 因为是重写 所以 返回值必须相同

    java  重写你可以这么理解    因为   方法名和参数类型个数相同  所以这就是重写了    然后  因为是重写  所以  返回值必须相同

  7. Java中线程同步的理解 - 其实应该叫做Java线程排队

    Java中线程同步的理解 我们可以在计算机上运行各种计算机软件程序.每一个运行的程序可能包括多个独立运行的线程(Thread). 线程(Thread)是一份独立运行的程序,有自己专用的运行栈.线程有可 ...

  8. Java ClassLoader加载机制理解 实际例子

    针对 Java ClassLoader加载机制理解, 做了个如何自定制简单的ClassLoader,并成功加载指定的类. 不废话,直接上代码. package com.chq.study.cl; im ...

  9. Java ClassLoader加载机制理解

    今天看到了一篇介绍Java ClassLoader加载机器的文章, 才发觉一直来自己的肤浅, 好好地给补了一课, 不得不存档! 原文地址: http://www.blogjava.net/lhulcn ...

随机推荐

  1. centos, ubuntu 上docker 安装

    参考中国官网,可以愉快的访问,各种系统,在线/离线部署都有说明.中文哦!! https://docs.docker-cn.com/engine/installation/linux/docker-ce ...

  2. dao层、service和action的运用和区别

    DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,对于数据库的操作,具体到对于某个表的增删改查, 也就是说某个DAO一定是和数据库的某一张表一一对应的 ...

  3. Largest Rectangular Area in a Histogram 最大连续面积

    在HankerRank遇到一题计算柱状图连续矩形面积的问题. 举例 hist = [3, 2, 3]. 在这个柱状图里面最大可以容纳一个high = 2 length = 3的连续矩形, 其面积 = ...

  4. ssm框架中文请求乱码get

    <bean id="utf8Charset" class="java.nio.charset.Charset" factory-method=" ...

  5. _spellmod_base

    技能基础修改(进去可能会改动) 可以配合数据库的spell_dbc在线制作无补丁技能. 具体效果查询DBC表 `spellid` int(11) NOT NULL DEFAULT '0', `Effe ...

  6. canvas 模拟时钟

    <meta charset="utf-8"> <canvas width="1000" height="1000" id= ...

  7. java日期和时间Date、Calendar、SimpleDateFormat

    1       时间和日期 1.1      日期类Date和格式化SimpleDateFormat 日期使用过程中需要将日期Date对象转化为字符串,或者将字符串形式的日期转化为日期Date对象.可 ...

  8. particular.js

    参数 键值 参数选项/ 说明 实例 particles.number.value number   数量 40 particles.number.density.enable boolean    t ...

  9. 【转】HDMI之TMDS信号

    转自:https://blog.csdn.net/wangdapao12138/article/details/79935821 HDMI传输原理和DVI相同,由Silicon Image公司发明的T ...

  10. Web安全测试工具 Burp Suit 使用简介

    参考文档: https://blog.csdn.net/gitchat/article/details/79168613 https://www.cnblogs.com/nieliangcai/p/6 ...