20175316 盛茂淞 2018-2019-2 <Java程序设计>实验二 面向对象程序设计 实验报告 (一)单元测试 在 IDEA中我们把产品代码放在src目录中,把测试代码放在test目录中,右键单击项目,在弹出的菜单中选择New->Directory新建一个目录; test目录中放的也是Java代码,在弹出的菜单中选择Mark Directory as->Test Sources Root就可以了: TDD(测试驱动开发): 伪代码(思路) 测试代码(产品预期功能) 产品代…
前言 大家好,给大家带来详细讲解Java中的类和面向对象思想的概述,希望你们喜欢 类和面向对象 在Java中怎样理解对象,创建对象和引用:什么是引用,对于基础学习的同学,要深入了解引用.示例:String str = new String(); :其中str为引用,并创建了一个对象. 引用 如果一个变量的类型是类的类型,不是基本数据类型,那么这个变量就叫做引用. 对 Person person = new Person(); 这个的理解: person叫做引用,new Person() 为创建了…
Java第三次作业--面向对象基础(封装) (一)学习总结 1.什么是面向对象的封装性,Java中是如何实现封装性的?试举例说明. 封装性 封装性是面向对象的方法所应遵循的一个重要原则,它有两个含义:一是值把对象的属性和行为看成一个密不可分的整体,将这两者"封装"在一个不可分割的独立单位(即对象)中,另一层含义值"信息隐蔽",把不需要让外界知道的信息隐藏起来,有些对象的属性及行为允许外界用户知道或使用,但不允许更改,而另一些属性或行为.则不允许外界知道,或只允许适用…
牛客网刷题(纯java题型 31~60题) 重写Override应该满足"三同一大一小"三同:方法名相同,参数列表相同,返回值相同或者子类的返回值是父类的子类(这一点是经过验证的)一大: 子类的访问修饰符比父类开放一小: 子类抛出的异常比父类的小(具体,或者说子类抛出的异常是父类抛出的异常的子类通过intellij测试的结果:在子类中,如果一个方法满足与父类的方法的方法签名(方法名称+参数列表)相同,则一定属于override,那么子类中次方法的返回值就必须满足是父类的子类,且子类方法…
20165222<Java程序设计>——实验二 面向对象程序设计 提交点一.JUnit测试用例 知识点:这里就是了解测试代码的应用,测试代码的书写为:@Test assertEquals("结果", 类名.static名(条件)); 遇到的问题:因为刚接触新的东西,一开始把junit包弄进去的时候用了很长时间,并且Test还是红色的,导致无法运行,后来更改了路径,才实验出来. 实验截图为: 提交点二.TDD方式学习StringBuffer 知识点:这里就是对不同方法的测试,…
Java第五次作业--面向对象高级特性(抽象类与接口) (一)学习总结 1.在上周完成的思维导图基础上,补充本周的学习内容,对Java面向对象编程的知识点做一个全面的总结. 2.汽车租赁公司,出租汽车种类有客车.货车和皮卡三种,每辆汽车除了具有编号.名称.租金三个基本属性之外,客车有载客量,货车有载货量,皮卡则同时具有载客量和载货量.用面向对象编程思想分析上述问题,将其表示成合适的类.抽象类或接口,说明设计思路并画出类图. 2.1设计思路:定义一个父类为Car,里面包括属性number,name…
Java第四次作业--面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装.继承和多态)进行总结. 2.阅读下面程序,分析是否能编译通过?如果不能,说明原因.应该如何修改?程序的运行结果是什么?为什么子类的构造方法在运行之前,必须调用父 类的构造方法?能不能反过来? class Grandparent { public Grandparent() { System.out.println("GrandParent Created.")…
​一.处理异常的两种方式 1.所有的编译时异常,要求程序员在编写程序阶段,必须对它进行处理,如果不处理的话,编译就会无法通过,处理异常有两种方法:捕捉和声明抛出. 2.捕捉:try.....catch....... 3.声明抛出就是方法声明的位置上使用throws关键字抛出异常. 4.所有RuntimeException的子类都是运行时异常,运行时异常程序员在编写阶段不需要对它进行处理. 5.编译时异常发生的几率比较高:运行时异常发生的几率比较低. 6.所有的Exception的直接子类都是“编…
Java第四次作业-面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装.继承和多态)进行总结. 2.阅读下面程序,分析是否能编译通过?如果不能,说明原因.应该如何修改?程序的运行结果是什么?为什么子类的构造方法在运行之前,必须调用父 类的构造方法?能不能反过来? 不能够编译通过,使用super关键字调用父类的构造方法需要将语句supe("Hello.Grandparent.");放在第一句. 构造函数是一种特殊的方法.主要用来在创建…
一.实现阶乘(一种用递归,一种普通方法) public static void main(String[] args) { System.out.println(factorial(5)); System.out.println(factorial_recursion(5)); } //普通循环结构实现阶乘 public static int factorial(int n) { int i = 1; int result = 1; for(;i<=n;i++) { result *= i; }…
本章简言 上一章笔者讲到关于ADO.NET相关的知识,知道了如何去访问数据库.本章将来讲关于面向对象的思想.不管在JAVA还是在C#面向对象思想的重要性都是占了一个很大的成份.往往他就像呼吸一样子,更多的时候我们会忽略.面向对象编程有三大特性:封装.多态.继承.关于这三大特性的定义笔者不会过多的介绍.网络上类似这样子的文章一搜一片.相信里面肯定有你需要的.而本系列主要目标是想让JAVA程序员进入C#的开发环境.所以更多会在俩者之间的差别进行讲解. 类和对象 在进入面向对象思想的讲解之前,笔者认为…
在之前的java 23 中,了解过设计模式的单例模式和工厂模式.在这里,介绍下设计模式 面向对象思想设计原则 在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设计原则 单一职责原则 开闭原则 里氏替换原则 依赖注入原则 接口分离原则 迪米特原则 单一职责原则 其实就是开发人员经常说的"高内聚,低耦合" 也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个.在设计模式中,所有的设计模式都遵循这一原则. 开闭原则 核…
1:二维数组(理解) (1)元素是一维数组的数组. (2)格式: A:数据类型[][] 数组名 = new 数据类型[m][n]; B:数据类型[][] 数组名 = new 数据类型[m][]; C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}}; D:数据类型[][] 数组名 = {{...},{...},{...}}; (3)案例(掌握): A:二维数组的遍历 B:二维数组的求和 C:杨辉三角形 2:两个思考题(理解) (1)Java中的参数传递…
这里有我之前上课总结的一些知识点以及代码大部分是老师讲的笔记 个人认为是非常好的,,也是比较经典的内容,真诚的希望这些对于那些想学习的人有所帮助! 由于代码是分模块的上传非常的不便.也比较多,讲的也是比较清晰的!如果你有需要可以在评论中留下您的邮箱我看到一定会免费发给你的!感谢这个平台让我们大家共同进步吧!! 记住 程序员是无私的!!! 也非常欢迎到我的博客内观看 博客地址:http://www.cnblogs.com/duscl/ /* 5:private关键字(掌握) (1)私有的意义,可以…
这里有我之前上课总结的一些知识点以及代码大部分是老师讲的笔记 个人认为是非常好的,,也是比较经典的内容,真诚的希望这些对于那些想学习的人有所帮助! 由于代码是分模块的上传非常的不便.也比较多,讲的也是比较清晰的!如果你有需要可以在评论中留下您的邮箱我看到一定会免费发给你的!感谢这个平台让我们大家共同进步吧!! 记住 程序员是无私的!!! 也非常欢迎到我的博客内观看 博客地址:http://www.cnblogs.com/duscl/ /* 面向对象(掌握) (1)面向对象 面向对象是基于面向过程…
总是看到四种权限,这里做一个介绍: 最大权限是public,后面依次是protected,default,private private修饰的只在本类可以使用 public是最大权限,可以跨包使用,不同包的子类和无关类都可以使用,可以修饰类,方法,成员变量 不写权限就是default默认权限:限于本包内使用 protected权限:跨包后的类如果有继承关系(子类),不能使用default修饰的,而可以使用protected修饰的,调用时候必须在子类的里面才可以调用父类的受保护权限,注意prote…
编程思想: 简单的说一下,我们学习编程,最重要的就是要有编程思想,而编程思想无非就是面向过程和面向对象,以下谈谈我对编程思想的理解. 面向过程: 从过程入手,第一步,第二步--.借助过程与过程的配合,完成需求. 例如: 小明进入房间,需要以下几个步骤: 第一步打开房间门,第二步小明进去,第三步把房间门关上. 每一步都是一个过程,如果小王,小李等等进来呢,一直重复这几个过程,会显得程序冗余复杂.此时面向对象的出现完美解决了这种问题. 面向对象:----模拟现实世界编程. 从对象入手,把和需求相关的…
* [String 类] * 1. String类位于java.lang包中,java.lang是java的语言包,使用时无须导包,自动导入. * * 2.拿到一个字符串对象: * ①字面量声明:String s="真辛苦": * ② new关键字声明: String s1=new String("校长"): * * * s.length(): 返回字符串的长度,length()是一个方法,使用时注意() * * String s1="123";…
也许每一个计算机专业的人,在大学学习java的时候,老师开始时都会说这么一句话,"Java是一门面向对象的语言".那么面向对象到底是什么,他有什么好处,或者他比其他流行的语言C/C++他强在哪里呢?“面向对象”在我们实际编程中有什么作用呢? 在开始实际的java之旅前,我们再次老生长谈下.我就按我自己的理解结合我这两年左右的编程经验来简单的说一说.其实在java之前我是学习C和C++的,但是并没有实际拿C或者C++写过什么项目,所以,一开始我就是直接用java的,在第一年的时候,我对面…
1. 对象,属性 前面看到对象里删除属性一直疑惑,什么是对象,为什么属性可以删除, 我印象里的属性还是停留在property, 总想不明白为什么属性竟然能够删除.直到看到标准库才明白,原来对象就是python里的字典,这个属性就是python里字典的key. delete就是删掉字典里面指定的一个值.这么简单的事如果有老师讲解会容易很多,用专业术语写出来的东西,作为新手真是费了好大劲才琢磨明白. ?  对象应该与python里的字典不完全一样,JS的对象包括数组.函数.三种原始类型(数值.字符串…
09.01_面向对象(多态的概述及其代码体现) A:多态(polymorphic)概述 事物存在的多种形态 B:多态前提 a:要有继承关系. b:要有方法重写. c:要有父类引用指向子类对象. C:案例演示 代码体现多态 09.02_面向对象(多态中的成员访问特点之成员变量) 成员变量 编译看左边(父类),运行看左边(父类). 09.03_面向对象(多态中的成员访问特点之成员方法) 成员方法 编译看左边(父类),运行看右边(子类). 09.04_面向对象(多态中的成员访问特点之静态成员方法) 静…
08.01_面向对象(代码块的概述和分类)(了解)(面试的时候会问,开发不用或者很少用) A:代码块概述 在Java中,使用{}括起来的代码被称为代码块. B:代码块分类 根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解). C:常见代码块的应用 a:局部代码块 在方法中出现:限定变量生命周期,及早释放,提高内存利用率 b:构造代码块 (初始化块) 在类中方法外出现:多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行 c:静…
07.01_面向对象(构造方法Constructor概述和格式)(掌握) A:构造方法概述和作用 给对象的数据(属性)进行初始化 B:构造方法格式特点 a:方法名与类名相同(大小也要与类名一致) b:没有返回值类型,连void都没有 c:没有具体的返回值return; 07.02_面向对象(构造方法的重载及注意事项)(掌握) A:案例演示 构造方法的重载 重载:方法名相同,与返回值类型无关(构造方法没有返回值),只看参数列表 B:构造方法注意事项 a:如果我们没有给出构造方法,系统将自动提供一个…
Java当中的变量 01 Java当中的实例变量和类变量 什么是实例变量和类变量呢? 实例变量为没有用static修饰符修饰的变量,而类变量为用static修饰符修饰的变量. public class Hello{ // 私有的静态变量 name private static name = "dashu"; // 私有变量 age private int age = 17; // 无参构造方法 public Hello(){ this.age = 18; } public static…
问题2.7.1,开放性问题,说一下你对面向对象思想的了解. 要点1,先说基础概念,比如面向对象思想包括封装.继承.多态,然后说些语法,比如可以通过extends继承类.通过implement来实现接口. 要点2,得结合具体的实际,说一下在你做过的项目里,面向对象思想带来的具体好处,比如结合一个具体的例子(比如电信系统),说一下把方法都定义到父类里,然后通过继承子类来扩展,从而能改善代码结构,通过多态来减少代码修改后的维护量.这个切记别只说理论,说的时候一定得举些你项目里的例子. 问题2.7.2,…
面向对象基础知识 面向对象是相对面向过程而言的 面向对象和面向过程都是一种思想 面向过程强调的是功能行为 面向对象将功能封装进对象,强调具备了功能的对象 面向对象是基于面向过程的 面向对象的特征: 封装 继承 多态 java中用类Class来描述事物: 属性:对应类中的成员变量 行为:对应类中的成员函数 成员变量 成员变量定义在类中,在整个类中都可以被访问 成员变量随着对象的建立而建立,存在于对象所在的堆内存中 成员变量有默认初始化值 局部变量 局部变量之定义在局部范围内,如函数内 局部变量存在…
前言 类和对象,在我们学习Java语言的过程中,它们无时无刻不存在着,在我们还远未详细弄明白它们的意义之前,在我们不知不觉的下意识里,我们都会直接或间接的用到它们,这是因为Java是一门面向对象的语言,在学习类与对象的前提下,我们应当先对面向对象有所了解. 我们都知道,Java语言是一门面向对象的语言,实际上类与对象,就是面向对象编程思想的重要基础. 面向对象编程思想概述 面向对象的开发思想可以说是人类最自然的一种思考方式,它将所有预处理的问题抽象成为对象,同时了解这些对象的相应属性以及展示这些…
点击进入_很多其它_Java千百问 1.接口和抽象类有什么差别 在Java语言中.抽象类abstract class和接口interface是抽象定义的两种机制. 正是因为这两种机制的存在,才赋予了Java强大的面向对象能力.抽象类abstract class和接口interface在对于抽象定义方面具有非常大的类似性.甚至能够相互替换.因此非常多开发人员在进行抽象定义时对二者的选择显得比較任意.事实上,两者之间还是有非常大的差别.对于它们的选择能反映出对问题本质的理解.对设计意图的理解. 了解…
面向对象的编程语言有封装.继承 .抽象.多态等4个主要的特征. 1封装: 封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的“高内聚.低耦合”,防止程序相互依赖性而带来的变动影响.在面向对象的编程语言中,对象是封装的最基本单位,面向对象的封装比传统语言的封装更为清晰.更为有力.面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个“模块”中,也就是一个类中,属性用变量定义,行为用方法进行定义,方法可以直接访问同一个对象中的属性.通常情况下,只要记住让变量和访问这个变量…
一.学习要点 认真看书并查阅相关资料,掌握以下内容: 掌握抽象类的设计 掌握接口的设计 理解简单工厂设计模式 理解抽象类和接口的区别 掌握包装类的应用 掌握对象的比较方法和比较器的使用 学习使用日期操作类 学习匿名内部类的使用 二.作业要求 发布一篇随笔,主要包括以下几部分的内容: (一)学习总结 1.在上周完成的思维导图基础上,补充本周的学习内容,对Java面向对象编程的知识点做一个全面的总结. 参考资料: XMind 2.汽车租赁公司,出租汽车种类有客车.货车和皮卡三种,每辆汽车除了具有编号…