[java理论篇]--java的面向对象
1、内存的结果示意图要明确:
分为堆、栈和方法区(方法区、静态区和常量池(String会强调));
栈中是临时变量;堆中是类的实例化后在内存中的空间开辟;
类中的变量(类变量)存在堆中;类的方法存在方法区中;
静态的变量和方法存在方法区的相应位置;
2、类是对象的抽象;对象是类的实例化;
2.1、对象的特征:对象的行为,对象的状态,对象的标识;
3、类的构造方法:是为了对象的初始化;使用构造代码块对所以对象进行初始化;
4、静态的代码块是为了类的初始化;
5、this关键字:指的是当前对象,在构造方法中使用是调用同名的构造方法;
6、类的特性:继承、封装和多态;
继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
类之间的关系:依赖,聚合,继承 这种关系使用UML符号表示如下:
7、内部类,可以看做是类的一个成员去理解;
8、注释:
类的注释
/**
*
*/
public class demo{ .......}
方法的注释
/**
*Raise the salary of an employee.
*@param byPercent the percentage by which to raise the salary
*@return the amount of the raise
*/
public double raiseSalary(double byPercent){
double raise =salary * byPercent/100;
salary +=arise;
rerutn raise;
}
域的注释
/*
*the demo
*/
public static final int h=1;
9、接口与抽象类
相同点:
两者都包含抽象方法,都不能被实例化。
两者都是引用数据类型,其变量可以被赋值为子类或者实现接口的类的对象。
不同点:
抽象类约定多个子类之间共同使用的方法;接口约定多个互不相关类之间共同使用的方法。
抽象类与子类之间采用单继承机制;一个类实现了多个接口实现了多继承的功能。
抽象类及其类中成员具有与普通类一样的访问权限;接口中的访问权限都是public。
抽象类可以包含非抽象的方法,也可以声明构造方法;接口中的方法全部都是抽象方法。
抽象类可以声明成员变量,子类可以对成员变量赋值;接口只能声明常量。
10 、 final 和 static
参考: http://lavasoft.blog.51cto.com/62575/18771/
转载于:https://blog.51cto.com/seasky09/1250894
[java理论篇]--java的面向对象相关推荐
- [java理论篇]--java的其他常用API
1.java的正则表达式: 常用方法:String matches(匹配) : String split(切割): String replaceAll(替换): 利用正则表达式获取字符创的核心代 ...
- 菜鸟学习笔记:Java基础篇4(面向对象三大特征)
菜鸟学习笔记:Java面向对象篇中 继承 概念 方法重写(override) Object类 Super关键字 组合 final关键字补充 封装 访问控制符 多态 继承 概念 继续上一篇的例子: #m ...
- 菜鸟学习笔记:Java基础篇3(面向对象思想、程序执行过程内存分析、面向对象重要概念)
菜鸟学习笔记:Java面向对象篇上 Java面向对象的思想 Java程序执行过程内存分析 Java垃圾回收机制 构造方法 方法重载(overload) static关键字 this关键字 Java面向 ...
- Java提高篇 —— Java三大特性之继承
一.前言 在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事 ...
- Java基础篇--Java 数组
Java基础篇--Java 数组 Java 数组 声明数组变量 创建数组 处理数组 For-Each 循环 数组作为函数的参数 数组作为函数的返回值 多维数组 多维数组的动态初始化(以二维数组为例) ...
- Java提高篇——Java实现多重继承
多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特征,然而我们知道Java为了保证数据安全,它只允许单继承.有些时候我们会认为如果系统中需要使用多重继承往往都是糟糕的设计,这个时候我们往往需 ...
- Java IO篇 Java IO编程
Java IO 一.java io 概述 1.1 相关概念 二.Java IO类库的框架 2.1 Java IO的类型 2.2 IO 类库 三.Java IO的基本用法 3.1 Java IO :字节 ...
- Java提高篇——Java中的异常处理
对于运行时异常.错误和检查异常,Java技术所要求的异常处理方式有所不同. 由于运行时异常及其子类的不可查性,为了更合理.更容易地实现应用程序,Java规定,运行时异常将由Java运行时系统自动抛出, ...
- java gul_[java实战篇]--java的GUI(1)
给出一个实例即可: package mymenu; import java.awt.*; import java.awt.event.*; import java.io.*; public class ...
最新文章
- observeOn()与subscribeOn()的详解
- springmvc项目在启动完成之后执行一次方法_SpringMVC运行原理
- linux硬件设备操作函数 open
- 【PAT甲级】1048 Find Coins (25 分) C++ 全部AC
- 不提拔你,就是因为你只想把工作做好
- 如何评价强gis与弱gis_什么是gis的简化解释
- skynet记录6:定时器
- 第15篇: Flowable-BPMN操作流程之排他网关
- kubenetes平台监控cAdvisor查看
- n皇后---一维数组解法
- 线性代数 第四章 线性方程组 知识点总结(Jeff自我感悟)
- 微信小程序开发——websocket(socket在线测试服务器,或本地socket服务器)
- 谢惠民,恽自求,易法槐,钱定边编数学分析习题课讲义23.2.3练习题参考解答[来自陶哲轩小弟]...
- Java汉语转拼音首字母并大写利用Pinyin4j(多音字识别)(中午括号识别)
- halcon 二值图像处理 区域的细化 skeleton
- 苹果手机计算机隐藏照片app,App Store 上的“加密计算器 - 隐藏私人相册视频”...
- HTML基础的回顾复习(基本标签,简单的一个登陆验证)
- 《刨根问底系列》01:操作系统凭什么可以调度程序?
- 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛E题小Y吃苹果
- setting文件配置