面向对象的第二天

第七天笔记

1:复习

1.1:面向过程和面向对象的区别

1.2:面向对象的分析过程

1:分析需求中的对象。

2:分析这些对象中的属性和行为

3:分析这些对象之间的关系。

1.3:类的组成部分:成员变量和成员方法。

  1.3.1:成员变量与局部变量的区别

1:局部变量是定义在方法内或者代码块中,而成员变量是定义在类里面和方法外面,表示这个类的属性或者特征。

2:成员变量有默认值,而局部变量是没有,必须先赋值后使用。

3:成员变量的作用域是在整个类中,而局部变量在它所定义在的{}里面。

1.4:如何创建对象

类名  对象名 = new  类名();

1.5:如何访问对象的属性和方法。

属性:对象名.属性

方法:对象名.方法名()

1.6:构造方法。

1.6.1:构造方法的作用:对成员变量进行初始化。

1.6.2:构造方法与普通方法的区别

1:方法名上,构造方法与类名必须一致,而普通方法的方法名只需要符合标识符的命名规则即可。

2:返回值。构造方法在声明的时候是没有返回值的。而普通方法必须要有返回值,如果没有则需要写void.

3:作用上。构造方法的作用是对成员变量进行初始化的,而普通方法是为了解决某一些具体的功能。

4:调用上。构造方法是在创建的时候才会调用,其他的地方都不能调用。而普通方法要么用类去调用,要么用对象去调用。

1.6.3:注意事项:

1:凡是类都必须有构造方法,如果没有显式得写构造方法,那么会默认增加一个无参的没有方法体的构造方法,如果显式得写了构造方法,则不会增加无参构造方法。

2:构造方法也是方法,所以也可以有重载,那么创建对象的时候,根据传递过来的实参序列来调用相应的构造方法。

3:一般写构造方法,要么不写,要么就写一个空的构造方法,和一个有参构造方法,而这个参数的个数和类型跟成员变量的个数和类型是一致的。

2:内存分析。

内存一共分5个区域:其中寄存器和本地方法去跟硬件和系统相关,不用管它。还有三个区域:堆,栈,方法区。

2.1栈:存放局部变量,比如方法中的参数,方法中的变量,语句中的变量

堆:存放对象和数组(对象就是由类创造的,封装了数据的,也存放了变量,只不过是成员变量,这些成员变量被打包在一个对象里面了)

3:参数的传递

3.1:引用类型:传递的是地址,如对象作为参数传递的是地址

3.2:基本数据类型:传递的是内容(值),如int型作为参数不就是传一个数字吗?

4:this关键字

4.1:this:当前对象的引用。

4.2:this的用法

4.2:访问成员变量   this.成员变量名,有时候也可以不写this.当成员变量和局部变量发生冲突的时候,用this标识是成员变量。

4.3:访问成员方法  this.方法名().也可以省略.

4.4:this调用构造方法。   this():如果有参数需要传递参数。用this调用构造方法,这条语句必须放在构造方法中的第一条语句。不能用this递归调用构造方法,会陷入死循环。

4.5:注意:

普通方法不可以调用构造方法。

构造方法可以调用普通方法。

4.3:构造代码块.

4.3.1:在类里面方法外面定义的代码块就叫构造代码块。

4.3.2:如何执行的?:构造代码块是只要new一次,就执行一次。

Dog dog  = new Dog( ); //执行顺序如下

1:先执行成员变量默认初始化

2:执行显式初始化

3:执行构造代码块初始化

4:执行构造方法初始化。

4.3.3:为什么需要构造代码块?它有什么作用?它跟构造方法有什么区别?

构造代码块是对这个类的所有对象进行统一的初始化。而构造方法是对某个对象进行初始化的。

5:面向对象的特征:继承,封装,多态

5.1:封装

封装的代码表现:成员变量私有化(用private修饰),提供公共的方法供外界访问。

有多少个成员变量,一般都会提供这个变量的set和get方法。方便外界调用.eclipse中快速创建get/set方法的方式:在写好成员变量后,执行菜单中 source –> Generate Getter and Setters 即可快速创建,source的快捷键是shift+Alt+s。

时间: 2024-10-04 14:15:31

面向对象的第二天的相关文章

《Java面向对象编程第二版》今年出版以来获得读者一致好评。

<Java面向对象编程第一版>自2016年出版以来,承蒙读者们的厚爱,至今已经重印了二十多次,成为国内Java领域里的经典Java技术宝典.在当当网上获得了1500多条好评: http://product.dangdang.com/9186890.html?point=comment_point 应广大读者的要求,为第一版进行了升级,第二版融合了最新的Java8的语言特性,它继续为Java开发人员们提供丰富全面的技术支持和帮助.在京东网上读者们对第二版的好评如潮,一致认为这是Java开发人员必

前端学PHP之面向对象系列第二篇——魔术方法

显示目录 目录 [1]构造方法 [2]析构方法 [3]不可访问属性[4]对象复制[5]字符串[6]对象不存在[7]自动加载类[8]串行化[9]函数调用 前面的话 php在面向对象部分有很多相关的魔术方法,这些方法为面向对象实现提供了便利,本文将详细介绍魔术方法 构造方法 大多数类都有一种称为构造函数的特殊方法.当创建一个对象时,它将自动调用构造函数,通常用它执行一些有用的初始化任务 构造函数的声明与其它操作的声明一样,只是其名称必须是两个下划线__construct( ).这是PHP5中的变化:

《Java面向对象编程第二版》即将出版

<Java面向对象编程第一版>自2016年出版以来,承蒙读者们的厚爱,至今已经重印了二十多次,成为国内Java领域里的经典Java技术宝典.应广大读者的要求,在过去的几个月,为第一版进行了升级,第二版融合了最新的Java8的语言特性,希望它能继续为Java开发人员们提供丰富全面的技术支持和帮助. 本书技术支持网址为:www.javathinker.net

JAVA面向对象程序设计(第二版) 袁绍欣 第四章答案

面向对象(上) 1.名词解释:构造方法.抽象 构造方法一般是用来初始化数据成员的,与类名相同,无返回值. 分为有参和无参数,当一个类中没有定义构造函数时,系统会给该类中加一个默认的空参数的构造函数,方便该类初始化. 构造函数可以重载. 2.对象位于内存何处?声明能引用对象的本质是什么? 对象位于堆内存中,实质是从栈空间中初始化一个引用,保存对象的地址. 3.对象和基本数据类型作为参数传递时,有什么不同? 对象传递的是它的地址,基本数据类型是值传递. 4.对象在什么时候成为垃圾对象并被释放? 对象

面向对象课程第二单元总结

本单元的整体多线程冒险体验对于我来说是要比第一单元好的……原因无他,我第一单元栽倒在输入处理和正则上的比例有点高,感觉除了设计上的丑陋之处,其他的全是输入处理上的问题= =…… 当然这并不代表本单元的冒险不紧张刺激,但至少省下输入处理的精力,我在代码结构的构造上面还是下了功夫的,整体构造感觉上要比第一单元更加合理一些(也许代码度量插件不这么想orz).这其中也有老师教的合理的多线程设计模式的功劳,在已有的框架内,会把生产者消费者.仓库工人等等线程类所要完成的工作规定清楚,避免上帝类.废物类.奇怪

javascript面向对象系列第二篇——创建对象的5种模式

× 目录 [1]字面量 [2]工厂模式 [3]构造函数[4]原型模式[5]组合模式 前面的话 如何创建对象,或者说如何更优雅的创建对象,一直是一个津津乐道的话题.本文将从最简单的创建对象的方式入手,逐步介绍5种创建对象的模式 [1]对象字面量 一般地,我们创建一个对象会使用对象字面量的形式 [注意]有三种方式来创建对象,包括new构造函数.对象直接量和Object.create()函数,详细情况移步至此 var person1 = { name: "bai", age : 29, jo

面向对象课程第二次随笔

多线程的协同与同步控制 第五次作业 作为第一次多线程作业,对于多线程的同步和协同机制还不是非常了解.在这次作业中,我将三个电梯作为了三个线程,输入线程和调度器线程进行辅助.输入线程和调度器线程之间采取了很简单的生产者消费者模式来进行指令的传递.比较重要的是调度器与三个电梯之间的协同,共享资源为指令与电梯的状态.由于要考虑电梯的状态进行分配指令,电梯状态的同步是十分重要的,我在电梯类中设计了一个专门的方法返回电梯状态并将这个方法synchronized来保证调度器获得的电梯状态与实际电梯状态的同步

JAVA面向对象程序设计(第二版) 袁绍欣 第六章答案

1.this 和 super 各有几种用法? 普通的直接引用,this指向当前对象 形参与成员名字重名,用 this 来区分:子类和父类中的成员重名,使用 super 引用构造函数 2.子类对象实例化的具体过程是什么? 先调用父类的构造函数,再调用自己的构造函数 3.类的域变量和方法中定义的局部变量在初始化上有何区别? 类的域变量在类实例化的时候进行初始化,方法中的局部变量在方法内部显式初始化 5.接口有什么用?自己定义一个接口,并给出实现类和使用类 实现多重继承 接口是一种标准,使用者按照接口

面向对象【day07】:类的属性-继承-经典类

本节内容 类的公有属性 析构函数 类的继承 新式类和经典类 一.类的公有属性 一.概述 前面我们讲了类的私有属性,现在我们来说说类的公有属性,这边很容易被人弄混淆,有人觉的,在__init__()构造方法中,除了私有属性,其他的都是公有属性了,其实这是一个错误的结论,并不是定义在__init__()初始化方法中的属性是公有属性(除私有属性),那什么是公有属性呢?揭起了大家的好奇心. 定义:指的是所属这个类的所有对象,都可以访问的属性,叫做公有属性. 二.公有属性 2.1 定义 说明:在类中直接定