面向对象三大特性:封装,继承,多态

类:对象的蓝图,生成对象的模板,是对一类事物的描述,是抽象的概念上的定义
对象:是实际存在的该类事物的每个个体,也称为实例
类之间三种关系:依赖关系(uses-a),聚集关系(has-a),继承关系(is-a)
 
面向对象:
1.将复杂的事情简单化
2.将以前的过程中的执行者,变成了指挥者
3.这种思想符合现在人们思考习惯的一种思想
 
匿名对象使用场景:
1.当对方法只进行一次调用时;
 
成员:
1.成员变量:事物的属性
2.成员函数:事物的行为
 
注意:属性是用于存储数据的,直接被访问量,容易出现安全隐患,所以类中的属性通常被私有化,并对外提供公共的访问方法,set()  get();
 
成员变量和局部变量的区别:
1.成员变量直接定义在类中,局部变量定义在方法中,参数上,语句中;
2.成员变量在这个类中有效,局部变量只在自己所属的大括号内有效;
3.成员变量存于堆内存中,随着对象的产生而存在,消失而消失,局部变量存于栈内存中,随着所属区域的运行而存在,结束而释放;
 
构造函数:对象创建时都需要初始化才可以使用
用于给对象进行初始化,给与之对应的对象初始化,具有针对性;
特点:
1.函数名与所在类名相同
2.不需要定义返回值类型
3.没有具体的返回值
注意:一个类中出现多个构造函数,它们的存在时可以重载体现的
分析事物时,发现具体事物一出现,就具备了一些特征,那就将这些特征定义到构造函数内
 
构造代码块和构造函数有什么区别:
1.构造代码块:时给所有的对象进行初始化,只要对象一建立,就会调用这个代码块
2.构造函数:是给与之对应的对象进行初始化,具有针对性
 
类的访问权限
1.public:
对于成员,类来说:任何其他类都可以访问它们,不管是否在同一个包
2.friendly:
对于成员来说:如一个类的成员没有任何权限修饰,那么它们就是缺省包访问权限,用friendly来表示。
对于类来说:同一个包中的类可以用,类只可以声明为public或friendly。
3.private:
对于成员来说:只能在该成员所属的类中访问
对于类来说:类不可以声明private
4.protected:
对于成员来说:相同包中的类可以访问,基类通过protected把基类的成员访问权限赋予派生类不是所有类
对于类来说:类不可以声明为protected
 
注:
1.每个类文件仅能有一个public class
2.public  class的名称必须和其他类文件同名
3.一个类文件可以不存在public class
4.class 不可以时private和protected
5.如果不希望那个任何产生某个class 的对象,可以将该类得所有构造函数设置成private。但是即使这样也可以生成该类的对象,就是class 的static 的成员(属性和方法)可以办到。

java基础复习二——面向对象一的更多相关文章

  1. C# 基础复习 二 面向对象

    继承:子承父业  子:子类    父:父类    业:所有非私有成员 好处:代码的复用   继承后,实例化子类时,不止子类的构造,父类的构造也会执行,而且父类的构造先于子类的构造执行 即使在子类可以看 ...

  2. 《Java基础复习》—常识与入门

    突然发现自己Java基础的底子不到位,复习! 所记知识会发布在CSDN与博客网站jirath.cn <Java基础复习>-常识与入门 一.Java语言的知识体系图 分为三部分 编程语言核心 ...

  3. Java基础复习笔记系列 四 数组

    Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...

  4. Java基础教程:面向对象编程[2]

    Java基础教程:面向对象编程[2] 内容大纲 访问修饰符 四种访问修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java 支持 4 种不同的访问权限. default ...

  5. 《Java基础复习》-控制执行流程

    最近任务太多了,肝哭我了,boom 参考书目:Thinking in Java <Java基础复习>-控制执行流程 Java使用了C的所有流程控制语句 涉及关键字:if-else.whil ...

  6. Java基础复习之数组

    Java基础复习之:数组 简介 数组(Array):多个相同数据类型按照一定顺序排列的集合,并使用一个名字命名,通过编号的方式对这些数据进行统一管理 一维数组 一维数组的声明与初始化 int[] id ...

  7. java基础复习记录

    java基础复习记录(数组.对象.异常) 数组 数组的定义 数组是相同类型数据的有序集合.如:篮球队就是一个数组,队员球服上有号码,相当于索引.通过某一个的某一个号码来确认是某一个队员.数组中索引从0 ...

  8. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  9. Java基础复习笔记系列 八 多线程编程

    Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...

随机推荐

  1. GL_总账完整会计周期业务(流程)

    2014-06-02 BaoXinjian

  2. WebDav的java客户端开发包:sardine

    最近需要对WebDav服务器进行操作,查找了一下,基于java的开发包主要有这几个: slide Jackrabbit sardine webdavclient4j 其中slide是apache的一个 ...

  3. posix 匿名信号量与互斥锁 示例生产者--消费者问题

    一.posix 信号量 信号量的概念参见这里.前面也讲过system v 信号量,现在来说说posix 信号量. system v 信号量只能用于进程间同步,而posix 信号量除了可以进程间同步,还 ...

  4. Effective C++:条款33:避免遮掩继承而来的名称

    (一) 以下这段代码: int x; void someFunc() { double x; //local variable std::cin>>x; //read a new valu ...

  5. OC 中new与alloc/init的差别

    英文具体解释:http://macresearch.org/difference-between-alloc-init-and-new 1.在实际开发中非常少会用到new.一般创建对象咱们看到的全是[ ...

  6. python标准库介绍——7 cmath 模块详解

    [Example 1-61 #eg-1-61] 所展示的 ``cmath`` 模块包含了一些用于复数运算的函数. ====Example 1-61. 使用 cmath 模块====[eg-1-61] ...

  7. 统计学习方法:支撑向量机(SVM)

    作者:桂. 时间:2017-05-13  21:52:14 链接:http://www.cnblogs.com/xingshansi/p/6850684.html 前言 主要记录SVM的相关知识,参考 ...

  8. 黑客编程教程(十五)HTTP代理

    #include <stdio.h> #include <winsock2.h> #define MAXBUFLEN 20480 #define HTTPADDLEN 50 # ...

  9. seajs加载jquery插件

    假设有如下一个名为get-data的jq插件: (function($) { $.fn.getData= function() { console.log($(this).attr('data')) ...

  10. 用C++画光(一)——优化

    写在前面 在先前的画光系列中,实现实体几何.反射.折射等效果,但是最大的一个缺陷是复杂度太高.当采样是1024时,渲染时间直线上升(用4线程),以至好几个小时才能完成一副作品,实现太慢.然而,当我看到 ...