S2_OOP第一章
面向对象设计的过程就是抽象的过程
步骤:
第一步:发现类
第二步:发现类的属性
第三步:发现类的方法
抽象是遵循的原则
属性和方法的设置是为了解决业务问题
关注主要属性和方法
如果没有必要,不增加额外的类、属性、方法
构造方法及其重载
Java可以和C#一样使用带参或者无参的构造方法(Constructor)完成赋值的初始化工作,系统会默认给定无参构造函数
构造方法
构造方法的名称和类名相同,没有返回值类型,构造方法的主要工作就是在创建对象时执行一些初始化操作
方法重载
方法重载就是多个方法的方法名相同,方法参数的个数不同或者参数数值类型不同。
Static修饰符
Static修饰的变量属于这个类所有,由这个类创建的所有对象共同一个static变量。通常被static修饰的成员成为类变量和类方法。不使用static修饰的成员属于的单个对象,通常称为实力属性(实例变量)和实例方法
结论
在加载类的过程中,完成静态变量的内存分配,在执行静态块,两者是在才黄建对象之前执行的
类属性和类方法可以通过类名和对象名访问,实例属性和实例方法只能通过对象名访问
类方法只能访问类属性和其他类方法
在方法里不可以定义static变量,也就是类变量不能是局部变量
封装
概念
封装是面向对象的三大特征之一,隐藏类内部的状态信息,通过该类提供的方法来实现对隐藏信息的访问和操作
封装的具体步骤
修改属性的可见性来限制属性的访问,为每个属性创建一个赋值(setter)方法和取值(getter)方法。
封装的优点
隐藏类实现细节
只让使用者通过程序规定的方法来访问数据
可以限制不合理操作和方便加入存取控制语句
This关键字
This关键字是对一个对象的默认引用,在每个实例方法内部,都有一个this引用变量,指定调用这个方法的对象
作用
使用this调用成员变量,解决成员变量和局部变量的同名冲突
使用this调用成员方法
使用this调用个重载的构造方法。只能在构造方法中使用,必须是构造方法的第一条语句。不能在多个构造函数中使,不然会发生递归现象
S2_OOP第一章的更多相关文章
- 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...
- MyBatis3.2从入门到精通第一章
第一章一.引言mybatis是一个持久层框架,是apache下的顶级项目.mybatis托管到goolecode下,再后来托管到github下.(百度百科有解释)二.概述mybatis让程序将主要精力 ...
- Nova PhoneGap框架 第一章 前言
Nova PhoneGap Framework诞生于2012年11月,从第一个版本的发布到现在,这个框架经历了多个项目的考验.一直以来我们也持续更新这个框架,使其不断完善.到现在,这个框架已比较稳定了 ...
- 第一章 MYSQL的架构和历史
在读第一章的过程中,整理出来了一些重要的概念. 锁粒度 表锁(服务器实现,忽略存储引擎). 行锁(存储引擎实现,服务器没有实现). 事务的ACID概念 原子性(要么全部成功,要么全部回滚). 一致性 ...
- 第一章 Java多线程技能
1.初步了解"进程"."线程"."多线程" 说到多线程,大多都会联系到"进程"和"线程".那么这两者 ...
- 【读书笔记】《编程珠玑》第一章之位向量&位图
此书的叙述模式是借由一个具体问题来引出的一系列算法,数据结构等等方面的技巧性策略.共分三篇,基础,性能,应用.每篇涵盖数章,章内案例都非常切实棘手,解说也生动有趣. 自个呢也是头一次接触编程技巧类的书 ...
- 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介
前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...
- 《Entity Framework 6 Recipes》翻译系列 (1) -----第一章 开始使用实体框架之历史和框架简述
微软的Entity Framework 受到越来越多人的关注和使用,Entity Framework7.0版本也即将发行.虽然已经开源,可遗憾的是,国内没有关于它的书籍,更不用说好书了,可能是因为EF ...
- 《Entity Framework 6 Recipes》翻译系列(2) -----第一章 开始使用实体框架之使用介绍
Visual Studio 我们在Windows平台上开发应用程序使用的工具主要是Visual Studio.这个集成开发环境已经演化了很多年,从一个简单的C++编辑器和编译器到一个高度集成.支持软件 ...
随机推荐
- 【详细资料】ICN6202:MIPI DSI转LVDS芯片简介
ICN6202功能MIPI DSI转LVDS,分辨率1920*1200,封装QFN40
- Tensorflow 线性回归预测房价实例
在本节中将通过一个预测房屋价格的实例来讲解利用线性回归预测房屋价格,以及在tensorflow中如何实现 Tensorflow 线性回归预测房价实例 1.1. 准备工作 1.2. 归一化数据 1.3. ...
- postgresql如何维护WAL日志/归档日志
WAL日志介绍 wal全称是write ahead log,是postgresql中的online redo log,是为了保证数据库中数据的一致性和事务的完整性.而在PostgreSQL 7中引入的 ...
- java中的jdk切换(无需卸载原有jdk)
该转自 : http://blog.csdn.net/u010011371/article/details/50749954 很好的一片文章,适合我这种小白,方便以后使用. 之前一直使用的是JDK1 ...
- VS2012启用angularjs智能提示Intelligence(转)
1. 關閉正在執行的 Visual Studio 2012 2. 開啟檔案總管,並進入以下目錄: C:\Program Files (x86)\Microsoft Visual Studio 11.0 ...
- HTML语言笔记
html语言即超文本标记语言. 超文本标记语言,标准通用标记语言下的一个应用. "超文本"就是指页面内可以包含图片.链接,甚至音乐.程序等非文字元 ...
- 【深入Java虚拟机】之七:Javac编译与JIT编译
转载请注明出处:http://blog.csdn.net/ns_code/article/details/18009455 编译过程 不论是物理机还是虚拟机,大部分的程序代码从开始编译到最终转化成物理 ...
- 201521123117 《Java程序设计》第6周学习总结
1. 本周学习总结 2. 书面作业 Q1.clone方法 1.Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么? 答:在自定义的类中覆盖cl ...
- 201521123076 《JAVA程序设计》第5周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容 初步了解了接口的概念,学会使用接口,强化面向对象思想 Comparable,Com ...
- 201521123110 《JAVA程序设计》第3周学习总结
1.本章学习总结 ` ` 2.书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...