Java面向对象编程基础

面向对象(Object oriented programming,OOP)技术是一种强有力的软件开发方法,它採用数据抽象信息隐藏技术,来使软件开发简单化,以达到代码重用的目的。

1、OOP的3个特性(封装、继承和多态性)

封装是类的基础。指把类的相关实现细节隐藏起来,在类中将数据和实现操作的代码集中起来放在对象的内部。调用这些类时仅仅需直接使用类预留的接口就能够了。

继承提供了子类自己主动拥有父类数据结构和方法的机制。它表示类之间的一种关系。

多态指使一个对象被看成还有一个对象的技术。即同样的操作或函数、过程可作用于多种类型的对象上,并获得不同的结果。

2、类、对象、方法

:具有同样特性(数据元素)和行为(功能)的对象的抽象就是类。即对象的抽象是类。类的详细化就是对象,或者说类的实例就是对象。(类是一个概念模型,类是构造面向对象程序的基本单位)

对象:一切皆是对象。(对象是真实的实体)

方法:对象运行的操作称为类的方法。

3、构造方法与析构方法

构造方法是类的一种特殊方法。用来初始化类的一个新的对象。

JAVA中的每一个类都有一个默认的构造方法,它必须具有与类名同样的名称。并且没有返回类型。构造方法的默认返回类型就是对象的类型本身,并且构造方法不能被static/final/synchronized/abstract/native修饰。

析构方法与构造方法相反,当对象脱离其作用域时(比如对象所在的方法已调用完成),系统自己主动运行析构方法,析构方法往往用来做清理碎片的工作。

在JAVA的Object类中还提供一个protected类型的finalize()方法。因此不论什么java类都能够覆盖这种方法,在这种方法中进行释放对象所占有的相关资源的操作。

java中面向对象编程的笔记例如以下图:

最后给出演示样例代码:

/******************************************************
* "定义类"——怎样定义一个类*/
public class Oopbasic //声明一个类
{
private String name; //编写类的属性
private int age; //编写类的属性
public void tell() { //编写类的方法(无返回參数)
System.out.println(name+"今年"+age+"岁!");
}
public int returnMax(int a,int b) { //编写类的方法(有返回參数)
return Math.max(a, b);
}
public static void main(String [] args) { //主函数
Oopbasic fa=new Oopbasic();//创建一个实例,即对象
fa.name="Fred";
fa.age=10;
fa.tell();
int x=12,y=15;
int zuida = fa.returnMax(x, y);
System.out.println("MAX="+zuida);
}
}

JAVA学习(五):Java面向对象编程基础的更多相关文章

  1. java学习笔记15--多线程编程基础2

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡 ...

  2. java学习笔记14--多线程编程基础1

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为 ...

  3. 零基础学Java第五节(面向对象一)

    本篇文章是<零基础学Java>专栏的第五篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 本文章首发于公众号[编程攻略] 类与对象 在哲学体系中,可以分为主 ...

  4. 面向对象编程基础(java)

    面向对象编程基础 1.1 面向对象概述 在程序开发初期,大家使用的是结构化开发语言,也就是面向过程(opp),但随着市场需求剧增,软件的规模也越来越大,结构化语言的弊端也暴露出来. 开发周期无休止的拖 ...

  5. [Java入门笔记] 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

  6. Java面向对象编程基础

    一.Java面向对象编程基础 1.什么是对象?Object 什么都是对象! 只要是客观存在的具体事物,都是对象(汽车.小强.事件.任务.按钮.字体) 2.为什么需要面向对象? 面向对象能够像分析现实生 ...

  7. 大数据技术之_16_Scala学习_04_函数式编程-基础+面向对象编程-基础

    第五章 函数式编程-基础5.1 函数式编程内容说明5.1.1 函数式编程内容5.1.2 函数式编程授课顺序5.2 函数式编程介绍5.2.1 几个概念的说明5.2.2 方法.函数.函数式编程和面向对象编 ...

  8. java学习之路之javaSE基础1

    <h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...

  9. Java学习笔记之---面向对象

    Java学习笔记之---面向对象 (一)封装 (1)封装的优点 良好的封装能够减少耦合. 类内部的结构可以自由修改. 可以对成员变量进行更精确的控制. 隐藏信息,实现细节. (2)实现封装的步骤 1. ...

随机推荐

  1. CSLA框架的codesmith模板改造

    一直有关注CSLA框架,最近闲来无事,折腾了下,在最新的r3054版本基础上修改了一些东西,以备自己用,有兴趣的园友可以下载共同研究 1.添加了默认的授权规则 如果是列表对象则生成列表权限,User的 ...

  2. [BZOJ1975]HH去散步 图论+矩阵

    ###[BZOJ1975]HH去散步 图论+矩阵 题目大意 要求出在一个m条边,n个点的图中,相邻两次走的边不能相同,求在t时间时从起点A走到终点B的路径方案总数.将答案mod45989 输入格式: ...

  3. Linux下基于多线程的echo

    准备开始写一些Linux 下网络编程以及多线程的blog,就从这个简单的echo程序开始吧. 在echo的服务端使用多线程与客户进行通信,可以实现一个服务端程序同时连接多个客户的功能.那么,到底在服务 ...

  4. QStandardItemModel的data线程安全(在插入数据时,临时禁止sizeHint去读model中的data)

    版权声明:本文为博主原创文章,欢迎转载,转载请注明出处 https://blog.csdn.net/MatchYang/article/details/52988257 在直接使用QStandardI ...

  5. 10.ref regex unordered_set smartpoint

    ref引用不可以复制的对象 void print(std::ostream &os, int i) { os << i << endl; } //ref引用不可以复制的 ...

  6. 移动端fixed后 横竖屏切换时上部或下部出现空隙问题

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. C# HttpHelper万能框架实现 接口

    POST请请求是使用Http协议与请求的URL进行连接,然后再写入数据,最后关闭连接的过程 方法(1) //要Post的数据 string postdate = "a=123&c=4 ...

  8. 浅谈Android和IOS系统的差异

    总结:事件响应级别.GPU加速.进程前后台.代码运行速度.内存管理机制. 进程管理机制.内存管理机制.cpu效率.GPU加速.事件响应级别. 1.    渲染机制不同 IOS的UI渲染采用实时优先级, ...

  9. C++调用约定和名字约定 thiscall

    调用约定: __cdecl __fastcall与 __stdcall,三者都是调用约定(Calling convention),它决定以下内容:1)函数参数的压栈顺序,2)由调用者还是被调用者把参数 ...

  10. CF666E Forensic Examination 广义后缀自动机_线段树合并_树上倍增

    题意: 给定一个串 $S$ 和若干个串 $T_{i}$每次询问 $S[pl..pr]$ 在 $Tl..Tr$ 中出现的最多次数,以及出现次数最多的那个串的编号. 数据范围: 需要离线 题解:首先,很常 ...