Day06_面向对象第一天
1、JAVA中的参数传递问题(掌握)
形式参数的改变对实际参数没有影响基本类型的实际参数和形式参数可以看作两个变量,这两个变量分别操作各自的数据,所以互不影响
形式参数的改变直接影响实际参数引用类型的实际参数和形式参数可以看作两个变量,这两个变量的地址值一样,也就是操作的对象一样,所以形式参数修改对象中的数据的时候,会对实际参数产生影响
注意:String是个特殊类型,划分到基本类型中,后期会讲
代码:
//证明基本类型形式参数的改变不会影响到实际参数publicstaticvoid change(int num){num =3;}publicstaticvoid main(String[] args){int a =4;change(a); //change方法用于改变a的值,如果a的值发生改变,说明形式参数的改变会影响到实际参数System.out.println(a);//输出4,说明形式参数的改变不会影响到实际参数a}
//证明引用类型形式参数的改变会影响到实际参数publicstaticvoid change(int[] arr ){arr[0]=1;}publicstatic viod main(String[] args){int[] a ={4,2,4,36};change(a);//如果a[0]的值变为1,说明形式参数的改变会影响到实际参数System.out.println(a[0]);//输出1,说明形式参数的改变会影响到实际参数}
2、说说面向对象思想-面试(掌握)
A、什么是面向对象(3点)1、面向过程是以函数为基础,完成各种操作,强调的是过程,你可以多加一句,比如C语言2、面向对象以对象为基础,完成各种操作,强调的是对象,结果3、面向对象是基于面向过程的B、面向对象的思想特点1、是一种更符合人们思考习惯的思想把2、复杂的事情简单化3、把我们从执行者变成了指挥者C、举例1、买电脑2、洗衣做饭3、旅游4、把大象装进冰箱(伪代码体现)5、买蛋糕
3、事物是如何体现的(掌握)
2、行为 有哪些功能
4、类与对象的关系(掌握)
| 把事物转换成类 | ||
| 事物 | --> | 类 |
| 属性(特征) | --> | 成员变量(定义在类中,方法外)(名词) |
| 行为(功能) | --> | 成员方法(和以前的区别是去掉static)(动词) |
| 类与对象的关系 | |
| 类 | 是一个抽象的概念,比如汽车,比如火箭。里面包含了相关的属相和行为 |
| 对象 | 实实在在存在的个体,比如奥迪A6,长征三号运载火箭 |
| 举例 | 学生:类对象:小明 |
5、案例(掌握)
A 定义学生类
B 定义手机类
C 定义汽车类
6、如何使用定义好的类(掌握)
第一步:创建对象类名对象名= new类名()第二步:通过对象名调用对象的属性和方法1、成员变量的使用调用:对象名.变量名赋值:对象名.变量名 = 值;2、成员方法的使用调用:对象名.方法名(实际参数);注意:方法只能调用,不能赋值,不存在p.show() = a.show();
7、成员变量和局部变量的区别(掌握)
1、定义位置成员变量:在类中方法外局部变量,在类中方法中,或者方法上的形式参数2、初始化的区别成员变量:有默认的初始化值局部变量:无3、存储位置成员变量:堆随着对象的存在而存在局部变量:栈随着方法的存在而存在
8、匿名对象(掌握)
1、概念没有名字的对象2、使用场景A 对象中的方法只调用一次的情况下使用一般在测试时使用,比如Student类中新建了一个sayHello方法,我们需要对方法进行测试,看看有没有问题,这个时候使用匿名对象:new Student().sayHello();B 匿名对象作为实际参数传递比如有一个方法 public void show(Student stu){}我们在调用的时候可以传入一个匿名对象 show(new Student());
9、封装之private关键字(掌握)
1、概念(掌握)是指隐藏对象的属性和实现细节,仅对外提供公共的访问方式(换句话说就是将属性私有化,并提供共有的方法访问)2、private关键字(掌握)可用于修饰成员内容,包括成员变量和成员方法被他修饰完毕后的内容,在其他类中是不能直接访问的,换句话说就是被private修饰的内容只能在本类中使用3、注意(掌握)private仅仅是封装的一种体现,因为类,函数等其实也是一个封装的体现4、为什么要写getter/setter方法(掌握)从思想上来说,因为属性私有化,只能在本类使用,其他类要想使用就需要提供get方法和set方法从需求上来讲,set和get方法 不一定必须出现,他俩是相互独立的而且set方法和get方法的名字可以随便起,只不过形成一个规范了,大家通过方法给私有属性赋值的时候,形成一个默认的规则,就是给属性赋值的方法以set开头,获取属性值的方法以get开头5、实例变量 和类变量(掌握)类变:静态变量,也就是在变量前加了static 的变量,例如 static int num = 10;实例变量:对象变量,即没加 static 的变量,例如 int num = 10;区别类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象
10、this关键字(掌握)
8、今天必须掌握的内容。以及常见的笔试题和面试题(学完这个就可以放心学习后面的知识了)
1、说说什么是面向对象
分三点回答1、面向对象的起源(换句话说就是什么是面向对象)2、面向对象的思想特点3、举例
答案详见知识点2
2、说说面向对象的三大思想特征
封装继承多态
3、成员变量和局部变量的区别
见上面总结
4、类和对象的关系
见上面总结
5、private关键字的特点
private是个权限修饰符,可以修饰成员变量和成员方法,被private修饰的内容只能在本来中访问。
6、谈谈你对this的理解
(1)this只能代表本类对象
(2)this代表所属函数(方法)的所属对象
(3)谁来调用我,我就代表谁
(4)this可用于区分成员变量和局部变量同名的情况
7、说说什么是匿名对象,匿名对象怎么用 见上面总结
8、形式参数的改变对实际参数有没有影响
详情见上面
什么是封装
9、今天必须掌握的代码
/*** 学生类* @author haoyongliang**/publicclassStudent{/**姓名*/privateString name;/**年龄*/privateint age;/*** 学习*/publicvoid study(){System.out.println("学习");}/*** 获取姓名* @return name 姓名*/publicString getName(){return name;}/*** 设置姓名* @param name 姓名*/publicvoid setName(String name){this.name = name;}/*** 获取年龄* @return age 年龄*/publicint getAge(){return age;}/*** 设置年龄* @param age 年龄*/publicvoid setAge(int age){this.age = age;}publicstaticvoid main(String[] args){Student stu =newStudent();stu.setAge(12);//测试set方法stu.setName("张三");System.out.println(stu.getAge());//测试get方法System.out.println(stu.getName());stu.study();//测试study方法}}
Day06_面向对象第一天的更多相关文章
- OO面向对象第一单元总结
OO面向对象第一单元总结(表达式求导) 写在前面: 魔鬼课程oo第一单元终于结束,当终究要落笔总结,竟不知从何写起…… 回首再去看第一次的作业,你会满足于那时的幸福,或许,这就是成长吧! 千言万语,一 ...
- Java基础-面向对象第一特性之封装(Encapsulation)
Java基础-面向对象第一特性之封装(Encapsulation) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.理解什么是面向过程和面向对象 面向过程与面向对象都是我们编程中 ...
- 面向对象第一个特征-封装(Encapsulation)
面向对象第一个特征-封装(Encapsulation) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.封装概述(Encapsulation) 1>.什么是封装 是指隐藏对 ...
- 面向对象第一单元总结:Java实现表达式求导
面向对象第一单元总结:Java实现表达式求导 题目要求 输入一个表达式:包含x,x**2,sin(),cos(),等形式,对x求导并输出结果 例:\(x+x**2+-2*x**2*(sin(x**2+ ...
- day23面向对象第一篇
python之路——初识面向对象 阅读目录 楔子 面向过程vs面向对象 初识面向对象 类的相关知识 对象的相关知识 对象之间的交互 类命名空间与对象.实例的命名空间 类的组合用法 初识面向对象 ...
- [Python3] 021 面向对象 第一弹
目录 1. 面向对象概述 1.1 OOP 思想 1.2 几个名词 1.3 类与对象 2. 类的基本实现 2.1 类的命名 2.2 如何声明一个类 2.3 如何实例化一个类 2.4 如何访问对象成员 2 ...
- Java面向对象 第一章 面向对象开发方法概述
一.软件开发经历的生命周期: ①软件分析 ②软件设计 ③软件编码 ④ 软件测试 ⑤ 软件部署 ⑥软件维护 二.为了提高软件开发效率,降低软件开发成本,一个优良的软件系统应该具备以下特点: ① 可重用性 ...
- Java入门 面向对象第一天
面向对象 人为抽象的一种编程模型,在理解面向对象的代码时要按照抽象的模型来理解,不能只从代码字面来理解复杂的问题,学会拆分成一个一个独立的小问题,通过解决每一个小问题,最后解决一个大问题 类 类是事物 ...
- 关于javascript面向对象的详解!
认识面向对象 1.面向对象中的概念 一切事物皆对象 对象具有封装和继承特性 信息隐藏 2.基本面向对象 3.函数构造器构造对象 深入了解面向对象 第一种书写格式 第二种书写格式
随机推荐
- synchronized和static synchronized的比较
群里讨论的一个问题,网上别人已经贴出了很详细的说明,这里补充记录下,后面加入个人测试代码. 起因:1月份的时候看群里讨论一道问题,问题内容如下: 一个日本作者-结成浩的<java多线程设计模式& ...
- BroadcastReceiver的实例----基于Service的音乐播放器之一
下面的程序开发了一个基于Service的音乐盒,程序的音乐将会由后台运行的Service组件负责播放,当后台的播放状态发生改变时,程序将会通过发送广播通知前台Activity更新界面:当用户单击前台A ...
- 李明杰视频 SVN
李明杰视频 SVN 就10-12使用技术SVN 源代码会引发哪些问题? 无法后悔:做错一个操作 版本备份:费控件,费时间 版本混乱:因版本备份太多造成混乱 代码冲突:多人操作同一文件 强烈建议 使用源 ...
- Phonegap hello world 不容易啊~!
今天一个项目要用phonegap,当初就是觉得phonegap配置太tmd的麻烦了,所以转头appcan,但今天项目必须用-- 先是看到官方说用nodejs装,tmd的,总是重复同一个错误,安装不起, ...
- HDU 3533 Escape bfs 难度:1
http://acm.hdu.edu.cn/showproblem.php?pid=3533 一道普通的bfs,但是由于代码实现出了bug还是拖了很久甚至对拍了 需要注意的是: 1.人不能经过炮台 2 ...
- struts2 通用标签
*property 标签 property 标签用来输出一个值栈属性的值, 对于对象栈,打印值栈中对应的属性值:对于Map 栈,打印request,session,application的某个属性值或 ...
- Problem A 栈
Description You are given a string consisting of parentheses () and []. A string of this type is s ...
- 原子操作 Interlocked系列函数
上一篇<多线程第一次亲密接触 CreateThread与_beginthreadex本质区别>中讲到一个多线程报数功能.为了描述方便和代码简洁起见,我们可以只输出最后的报数结果来观察程序是 ...
- 一张图告诉你为什么 Gmail 是最好的邮箱,以及大量私货
今天早上,我的同事详细介绍了 Gmail 相比其他邮箱的优势,比如强大的垃圾邮件过滤.简单的使用界面.强大的功能设置等等.但是对我来说,这些并不是我使用 Gmail 的最重要原因. 我第一个正式的邮箱 ...
- SharePoint开发 - 自定义导航菜单(二)母版页的菜单应用
博客地址 http://blog.csdn.net/foxdave 接上篇点击打开链接 本篇叙述在母版页中应用之前的配置信息生成菜单,主要涉及到母版页的自定义,并应用了第三方控件库DevExpress ...