java面向对象基础总结
本周学习了java面向对象的一些基本概念,介绍了它三个主要特性,封装性、继承性、多态性,类与对象的关系,栈堆的关系,三个特性中主要讲了封装性,其他两个后面再讲。
类实际上是表示一个客观世界某类群体的一些基本特征抽象、
类由属性和方法构成
对象则是表示一个具体的东西
类与对象的另一种解释:
创建类:
class 类名称{
数据类型 属性;
..............
public 返回值的数据类型 方法名称 (参数1,参数2....){
程序语句:
【return 表达式】
}
}
创建完类之后,要使用这个类则需要通过对象,下面创建对象:
类名 对象名 = null; \\声明对象
对象名 = new 类名(); \\实例化对象,只要有关键字new就表示开辟新的堆内存空间
所有的对象名称都保存在栈内存中,而对象的具体内容则保存在对应的堆内存中。
在栈内存中实际上保存的是堆内存空间的访问地址。
访问对象中的属性或方法:
访问属性:对象名称.属性名
访问方法:对象名称.方法名()
主意!!!如果一个对象要被使用,则对象必须被实例化。如果没有被实例化而直接调用了对象里的属性或方法,则程序会报异常。
垃圾空间的产生:
对于垃圾空间java本身提供了一个垃圾收集机制(简称GC,Garbage Collection),会不定期的释放不用的内存空间,只要对象不使用了,就会等待GC释放空间。
下面讲三个主要特点之一的封装性:
所谓封装就是指对外部不可见。
封装格式:
为属性封装:private 属性类型 类型名称;
为方法封装:private 方法返回值 方法名称(参数列表){ }
对于封装后的属性无法直接访问
访问封装属性要使用setter和getter方法,在各个程序中,反射机制都会利用这两个设置和取得属性内容。
封装是面向对象的方法所遵循的一个重要原则。它有两个含义:一是指把对象的属性和行为看成一个密不可分的整体,将这两者“封装”在一个不可分割的独立单位即“对象”中。另一层含义指“信息隐蔽”,把不需要让外界知道的信息隐蔽起来,有些对象的属性及行为允许外界用户知道或使用,但不允许更改,而另一些属性或行为,则不允许外界知晓;或只允许使用对象的功能,而尽可能隐蔽对象实现功能的细节。
封装机制在程序设计中表现为,把描述对象属性的变量及实现对象功能的方法结合在一起,定义为一个程序单位,并保证外界不能任意更改其内部的属性值,也不能任意调动其内部的功能方法。
封装机制的另一个特点是,为封装在一个整体内的变量及方法规定了不同级别的“可见性”或访问权限。
“-”这个表示封装属性
还有第二个属性继承性:
在java程序设计中,已有的类可以是java开发环境所提供的一批基本的程序---类库。
用户开发的程序类是继承这些已有的类。这样,现在类所描述的属性及行为,即已定义的变量和方法,在继承产生的类中完全可以使用。被继承的类称为父类或超类,而经继承产生的类称为子类或派生类。根据继承机制,派生类继承了超类的所有成员,并相应地增加了自己的一些新的成员。
若一个子类只允许继承一个父亲,称为单继承;若允许继承多个父亲,称为多继承。目前许多面向对象语言不支持多继承,而java通过接口(interface)的方式来弥补。
第三个属性多态性:
多态是允许程序中出现重名现象。
一个是方法多态:在一个类中,允许多个方法使用一个名字,但方法的参数不同,完成的功能也不同。
另一个是对象多态:子类对象可以与父类对象进行互相的转换,而根据其使用的子类的不同完成的功能也不同。
现在对后两个进行简单的介绍。后面会详细讲解
java面向对象基础总结的更多相关文章
- 【重走Android之路】【Java面向对象基础(三)】面向对象思想
[重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinkin ...
- 【重走Android之路】【Java面向对象基础(二)】细说String、StringBuffer和StringBuilder
[重走Android之路][基础篇(二)][Java面向对象基础]细说String.StringBuffer和StringBuilder 1.String String是Java中的一个final ...
- 【重走Android之路】【Java面向对象基础(一)】数据类型与运算符
[重走Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符 1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数 ...
- 086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结
086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结 本文知识点:面向对象基础(类和对象)总结 说明 ...
- 085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用
085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用 本文知识点:构造方法调用 说明:因为时间紧张,本人写博客过程中只是 ...
- 084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字
084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字 本文知识点:构造方法-this关键字 说明:因为时间紧 ...
- 083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法
083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法 本文知识点:构造方法-带参构造方法 说明:因为时间紧张, ...
- 082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法
082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法 本文知识点:构造方法-无参构造方法 说明:因为时间紧张, ...
- 081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字
081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字 本文知识点:new关键字 说明:因为时间紧张,本人写博客过程中只是 ...
- 080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则
080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则 本文知识点:单一职责原则 说明:因为时间紧张,本人写博客过程中只是 ...
随机推荐
- 牛客假日团队赛5 F 随机数 BZOJ 1662: [Usaco2006 Nov]Round Numbers 圆环数 (dfs记忆化搜索的数位DP)
链接:https://ac.nowcoder.com/acm/contest/984/F 来源:牛客网 随机数 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...
- Redis 启动警告解决
Redis 启动警告解决[转] [root@centos224]# service redisd start 21985:M 24 Nov 04:07:20.376 * Increased maxim ...
- web页面调用app的方法
use_app_goto_page: (skip_type, skip_target) => { // Android App if (/android/i.test(navigator.use ...
- Django框架架构总览
Django框架架构总览 理解Django是如何运作的 条目创建于 2013-08-14 1464 views 服务器君一共花费 15.204 ms 进行了 4 次数据库查询,努力地为 ...
- 用 IDEA工具导入SVN项目。 步骤一:选择VCS
Intellij IDEA是目前主流的IDE开发工具,工程项目导入也是必不可少的操作,本文讲述如何用 IDEA工具导入SVN项目. 步骤一:选择VCS 步骤二:打开SVN Repositories 在 ...
- Codeforces Round #350(Div 2)
因为当天的下午才看到所以没来得及请假所以这一场没有打...于是信息课就打了这场的模拟赛. A题: *题目描述: 火星上的一年有n天,问每年最少和最多有多少休息日(周六周天). *题解: 模7分类讨论一 ...
- 有关于TreeSet的自我理解
TreeSet是依靠TreeMap来实现的. TreeSet是一个有序集合,TreeSet中的元素将按照升序排列,缺省是按照自然排序进行排列,意味着TreeSet中的元素要实现Comparable接口 ...
- Collections 索引
About Me NOIp 数据结构专题总结 NOIp 图论算法专题总结 NOIp 基础数论知识点总结 NOIp 数学知识点总结 搜索算法总结 (不包含朴素 DFS, BFS) 位运算 字符串算法总结 ...
- telnet测试端口是否打开?
如何测试远程服务器的某个端口是否打开? 例如: telnet 192.168.1.1 5000 返回: Trying 127.0.0.1...Connected to 127.0.0.1.Escape ...
- Beyond Compare4 激活
当你使用过一段时间后会提示有问题,需要激活或者什么. 解决办法: 找到这个路径并删除其下Beyond Compare 4文件夹即可正常使用. C:\Users\******\AppData\Roami ...