Day06_面向对象第一天

1、JAVA中的参数传递问题(掌握)

基本类型

形式参数的改变对实际参数没有影响

基本类型的实际参数和形式参数可以看作两个变量,这两个变量分别操作各自的数据,所以互不影响

引用类型

形式参数的改变直接影响实际参数

引用类型的实际参数和形式参数可以看作两个变量,这两个变量的地址值一样,也就是操作的对象一样,所以形式参数修改对象中的数据的时候,会对实际参数产生影响

注意:String是个特殊类型,划分到基本类型中,后期会讲

代码:

  1. //证明基本类型形式参数的改变不会影响到实际参数
  2. publicstaticvoid change(int num){
  3.   num =3;
  4. }
  5. publicstaticvoid main(String[] args){
  6.   int a =4;
  7.   change(a);     //change方法用于改变a的值,如果a的值发生改变,说明形式参数的改变会影响到实际参数
  8.   System.out.println(a);//输出4,说明形式参数的改变不会影响到实际参数a
  9. }

等价于

实际参数是一个变量int a = 4;

形式参数int num = a;

num = 3;

  1. //证明引用类型形式参数的改变会影响到实际参数
  2. publicstaticvoid change(int[] arr ){
  3.   arr[0]=1;
  4. }
  5. publicstatic viod main(String[] args){
  6.   int[] a ={4,2,4,36};
  7.   change(a);//如果a[0]的值变为1,说明形式参数的改变会影响到实际参数
  8.   System.out.println(a[0]);//输出1,说明形式参数的改变会影响到实际参数
  9. }

等价于

实际参数是一个变量int[] arr = {1,2}

形式参数int[] arr2 = arr;

arr2[0] = 3;

2、说说面向对象思想-面试(掌握)

A、什么是面向对象(3点)

1、面向过程是以函数为基础,完成各种操作,强调的是过程,你可以多加一句,比如C语言

2、面向对象以对象为基础,完成各种操作,强调的是对象,结果

3、面向对象是基于面向过程的

B、面向对象的思想特点

1、是一种更符合人们思考习惯的思想把

2、复杂的事情简单化

3、把我们从执行者变成了指挥者

C、举例

1、买电脑

2、洗衣做饭

3、旅游

4、把大象装进冰箱(伪代码体现)

5、买蛋糕         

 

        举例后补充说明 这就是面向对象,因为强调的时结果,这就是面向过程,因为强调的是过程

 

比如:

朋友过生日需要生日蛋糕,如果自己去买原材料,买面粉,奶油,鸡蛋,然后自己和面,烘烤,这就是面向过程(DIY),因为强调的是过程     如果自己去找一个卖蛋糕的,把钱给了他,他直接给我一个蛋糕,这就是面向对象,因为我最终要的就是蛋糕,强调的是结果

3、事物是如何体现的(掌握)

    1、属性     有哪些特征,名词提取法
    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关键字(掌握)

1、概念(理解或了解)

this代表其所在方法所属对象的引用,哪个对象调用方法,方法内部就有一个隐含的this代表这个对象(谁调用,this就代表谁)(重点)

     简单点说:谁调用,this代表谁

2、应用场景(作用掌握)

用于解决局部变量隐藏成员变量的问题

     简单点说:通过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、今天必须掌握的代码

  1. /**
  2. * 学生类
  3. * @author haoyongliang
  4. *
  5. */
  6. publicclassStudent{
  7. /**姓名*/
  8. privateString name;
  9. /**年龄*/
  10. privateint age;
  11. /**
  12. * 学习
  13. */
  14. publicvoid study(){
  15. System.out.println("学习");
  16. }
  17. /**
  18. * 获取姓名
  19. * @return name 姓名
  20. */
  21. publicString getName(){
  22. return name;
  23. }
  24. /**
  25. * 设置姓名
  26. * @param name 姓名
  27. */
  28. publicvoid setName(String name){
  29. this.name = name;
  30. }
  31. /**
  32. * 获取年龄
  33. * @return age 年龄
  34. */
  35. publicint getAge(){
  36. return age;
  37. }
  38. /**
  39. * 设置年龄
  40. * @param age 年龄
  41. */
  42. publicvoid setAge(int age){
  43. this.age = age;
  44. }
  45. publicstaticvoid main(String[] args){
  46. Student stu =newStudent();
  47. stu.setAge(12);//测试set方法
  48. stu.setName("张三");
  49. System.out.println(stu.getAge());//测试get方法
  50. System.out.println(stu.getName());
  51. stu.study();//测试study方法
  52. }
  53. }

 

 

 

 

 

来自为知笔记(Wiz)

时间: 2024-12-16 13:04:25

Day06_面向对象第一天的相关文章

面向对象-第一单元总结

一.对面向对象的理解 有位同学给java的面向对象做了一个形象生动的类比,我觉得很有道理,大概按我的理解如下: 结构的形成看图之前,我们要先明白,世界上是先有了实体,才有了一步步抽象至以上的体系结构,当然也未必是自底向上逐步抽象,也许在最初的认识体系中,只有故宫里的植物C.植物.和存在,或许迎客松A和蒹葭B都是植物的对象,在之后的认识中逐步向上抽象出生物,向下细分为树和草等等.但无论如何,所有的抽象类都是我们从实体中归纳总结出的,不是凭空产生的. 在真实的程序设计中或许我们也是如此,也即先有简单

面向对象第一单元总结

目录 一.任务需求 二.实现方案 多项式数据结构的设计 多项式解析与WRONG FROMAT判断 表达式求导 表达式简化 三.基于OO度量的程序分析 四.程序bug分析 五.对象创建模式 六.对比和心得体会 第一单元通过三次迭代的表达式求导任务建立对面向对象程序的初步认识,并熟悉面向对象的思维和编程方法. 一.任务需求 三次作业的需求如下: 第一次作业:求解简单多项式导函数 第二次作业:求解包含简单幂函数和简单正余弦函数的表达式的导函数 第三次作业:求解包含简单幂函数和可嵌套因子的正余弦函数的表

第三 章、面向对象 第一步部分

一.类与对象的基本概念 类:抽象的概念集合,表示的是一个共性的产物,类之中定义的是属性和行为(方法): 对象:是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性区分不同的对象. 类与对象的区别:类是对象的模板,对象是类的实例,类只有通过对象才可以使用,开发中应该先产生类,再产生对象.类不能直接使用,方法可以直接使用. 二.类与对象的定义 1.类的定义: 在JAVA中定义类,可以使用class关键字完成, 语法为: 1 class 类名称{ 2 属性(变量): 3 行为(方

面向对象第一周心得体会

这一周,我们开始了面向对象的学习.从这周的学习我了解到了,面向对象是一种编程方法,是计算机编程技术发展到一定阶段后的产物.最早的编程方法是面向过程的,面向过程的发放可以用来解决一些简单的算法,但是当计算机编程被用于解决越来越复杂的问题的时候,面向过程的方法就会特写的复杂,不便于人们分析和理解.但是面向对象的编程方法把事物变成对象,有效的提高了编程效率,也更助于我们理解. 这一周老师讲的很多, 我们练得很少,所以我对这一周老师所讲的东西应用的还不是很熟悉,使用的时候会出现一些错误.我只能通过下来的

面向对象第一章

1.         使用类图如何描述设计 -         private(私有) 属性 +  public(公共) 方法 访问修饰符: 缺省(默认),只能被同一个包中的类访问 private(私有的),访问权限最小,只能自己访问 public(公共的),访问权限最大,任何类都可以访问 protected(受保护的)[继承中讲解] 2.         面向对象设计的步骤 a)      发现类(名词) b)      发现属性(名词或形容词) c)       发现方法(动词) 3.   

java面向对象第一章

1.         使用类图如何描述设计 -   private(私有) 属性 +  public(公共) 方法 访问修饰符: 缺省(默认),只能被同一个包中的类访问 private(私有的),访问权限最小,只能自己访问 public(公共的),访问权限最大,任何类都可以访问 protected(受保护的)[继承中讲解] 2.         面向对象设计的步骤 a)      发现类(名词) b)      发现属性(名词或形容词) c)       发现方法(动词) 3.         

PHP面向对象第一天!!WTF??黑人蒙蔽 面向对象??

面向对象 1.面向对象  OOP (object oriented programming), 类: 类别 class. 对像:object 物质,物质的本源. 事实上这是站在哲学的角度提出来的一种编程思想.我们的世界就是由各种各样的东西组成的,例如:汽车,建筑,人等各种各样. 2.面向对象的识别事物的方式: 类别:归类. 类是对象的抽象,对象是类的实例. 什么是类与对象 所谓类,就是对对象的一种分类.类与对象的关系类似于模具与实在的东西之间的关系.换句话说:我们可以通过类来制造出一个对象.类是

关于javascript面向对象的详解!

认识面向对象 1.面向对象中的概念 一切事物皆对象 对象具有封装和继承特性 信息隐藏 2.基本面向对象 3.函数构造器构造对象 深入了解面向对象 第一种书写格式 第二种书写格式

简单说说如何上手面向对象编程?

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>The eighth group</title> 6 </head> 7 <body> 8 9 <script type="text/javascript"> 10 /*** 11