静态类

Java—(多态、内部类)

我与影子孤独终老i 提交于 2019-12-15 20:14:09
一、多态 多态:可以理解为同一个事物在不同的场合具有不同的形态 分为两种: 编译时多态:在编译期间编译器根据函数实参的类型确定要调哪个函数(这个我们之前已经接触过了,和函数重载差不多,是同名函数,但是参数不同)编译时的多态性是通过函数重载或运算符重载来实现的。 运行时多态:在程序运行期间才会去判断到底会调用哪个函数。这里我们主要讲的就是动态多态。运行时的多态性是通过虚函数与基类指针共同作用实现的。 作用: 静态多态的作用:减少了名字(比如:函数名)的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。 动态多态的作用:多态技术允许将基类指针或基类引用指向子类对象,根据对象的动态类型来决定调用的是哪个子类中的这个同名方法,从而解决了同名覆盖问题,写出了通用的代码,即扩展性优秀的代码,以适应需求的不断变化。 简单举个例子: 猫 x=new 猫(); 动物 y=new 猫(); 1.多态的体现 父类的引用指向自己的子类对象; 父类的引用也可以接收自己的子类对象。 2.多态的前提 必须是类与类之间的关系,要么是继承(extends),要么是实现(implements),通常还有一个前提,就是存在覆盖(重写)。 3.多态的好处 多态的出现大大的提高了程序的可扩展性。但是只能使用父类的引用,访问父类的成员。 4.类型转换(向上转型,向下转型) Anmial a=new Cat();/

第10组 Beta冲刺(4/5)

白昼怎懂夜的黑 提交于 2019-12-11 01:06:45
链接部分 队名:女生都队 组长博客: 博客链接 作业博客: 博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 新增数据分析展示等功能API 服务器后端部署,API接口的beta版实现 展示GitHub代码签入记录 接下来的计划 设计并完善数据分析算法 设计宠物升级算法 跟进项目进度,安排整体计划 继续完善所负责模块的功能,写好接口 完善功能需求API的调用,撰写API文档 还剩下哪些任务 燃尽图 遇到了哪些困难 如何对任务完成情况进行合理的评分记录 数据分析算法的进一步完善和功能的扩充,使展示更多、更丰富的数据 有哪些收获和疑问 如何在规范化接口,使一个接口能够提供不止一种功能 如何设计数据分析算法 金海 过去两天完成了哪些任务 完成了在服务器搭建数据库 完成了数据库任务的部署 GitHub签入记录 组内共享 接下来的计划 完成alpha版本冲刺 完善数据库搭建 还剩下哪些任务 燃尽图 组内共享 遇到了哪些困难 对Navicat链接服务器数据库遇到了很多坑 有哪些收获和疑问 学习服务器的搭建 熬夜使人头秃 君曦 过去两天完成了哪些任务 编写类,将接口调用返回的内容保存 调用接口 GitHub签入记录 组内共享 接下来的计划 完成预定时间向用户推送提醒 复习 还剩下哪些任务 燃尽图 组内共享 遇到了哪些困难 调用接口返回了空值。 有哪些收获和疑问 调用接口更加熟练

【软工实践】Beta冲刺(4/5)

自闭症网瘾萝莉.ら 提交于 2019-12-10 22:45:09
链接部分 队名:女生都队 组长博客: 博客链接 作业博客: 博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 新增数据分析展示等功能API 服务器后端部署,API接口的beta版实现 展示GitHub代码签入记录 接下来的计划 设计并完善数据分析算法 设计宠物升级算法 跟进项目进度,安排整体计划 继续完善所负责模块的功能,写好接口 完善功能需求API的调用,撰写API文档 还剩下哪些任务 燃尽图 遇到了哪些困难 如何对任务完成情况进行合理的评分记录 数据分析算法的进一步完善和功能的扩充,使展示更多、更丰富的数据 有哪些收获和疑问 如何在规范化接口,使一个接口能够提供不止一种功能 如何设计数据分析算法 金海 过去两天完成了哪些任务 完成了在服务器搭建数据库 完成了数据库任务的部署 GitHub签入记录 组内共享 接下来的计划 完成alpha版本冲刺 完善数据库搭建 还剩下哪些任务 燃尽图 组内共享 遇到了哪些困难 对Navicat链接服务器数据库遇到了很多坑 有哪些收获和疑问 学习服务器的搭建 熬夜使人头秃 君曦 过去两天完成了哪些任务 编写类,将接口调用返回的内容保存 调用接口 GitHub签入记录 组内共享 接下来的计划 完成预定时间向用户推送提醒 复习 还剩下哪些任务 燃尽图 组内共享 遇到了哪些困难 调用接口返回了空值。 有哪些收获和疑问 调用接口更加熟练

C#学习—类

牧云@^-^@ 提交于 2019-12-09 04:16:09
C#是面向对象的,其与面向过程的最大不同就在于:类和对象。 类的定义: 访问修饰符(如:public) class 类名 {} 类的分类: 静态类(static)和非静态类(没有static即为非静态) 静态类不能被实例化,即不能使用new()来创建类的实例,不能被对象所访问,只能由类来访问。eg:Math类 同理:静态方法也不能被对象所调用,只有由类来调用。 类的组成: 字段、属性(一种特殊的方法)、方法(也叫函数)等 类的属性: 自动属性:public string Name {get;set;} 类的构造函数: 构造函数,是一种特殊的方法。主要用来在创建对象时初始化对象,如:Dashboard dashboard = new Dashboard(); 默认的构造函数为:public Dashboard(){},在编译时会自动生成; 也可以自己定义构造函数: public Dashboard(string name) //方法名与类名相同 { this.Name = name; } //新建一个对象 Dashboard dashboard = new Dashboard("db") 自定义构造函数之后, 默认的构造函数将不会自动生成,当然也可以通过重载来新增。 重载: 在一个类中编辑多个同名方法,它们的参数列表不同,但实现步骤功能有相同点。

Ognl 使用实例手册

不羁岁月 提交于 2019-12-06 13:46:47
上一篇博文介绍了ongl的基础语法,接下来进入实际的使用篇,我们将结合一些实际的case,来演示ognl究竟可以支撑到什么地步 在看本文之前,强烈建议先熟悉一下什么是ognl,以及其语法特点,减少阅读障碍,五分钟入门系列: 191129-Ognl 语法基础教程 I. 基本使用 1. 配置 我们选用的是java开发环境,使用maven来进行包管理,首先在pom文件中添加依赖 <!-- https://mvnrepository.com/artifact/ognl/ognl --> <dependency> <groupId>ognl</groupId> <artifactId>ognl</artifactId> <version>3.2.11</version> </dependency> 2. 基础使用 对于Ognl的使用,关键的地方在于获取 OgnlContext , 在这个上下文中保存一些实例用来支撑ognl的语法 所以一般使用ognl的先前操作就是创建 OgnlContext ,然后将我们的实例扔到上下文中,接收ognl表达式,最后执行并获取结果 伪代码如下 // 构建一个OgnlContext对象 OgnlContext context = (OgnlContext) Ognl.createDefaultContext(this, new

Java内部类

我只是一个虾纸丫 提交于 2019-12-05 16:45:39
根据定义的方式不同,内部类分为 静态内部类、成员内部类、局部内部类、匿名内部类 四种。 1.静态内部类   定义在类内部的静态类,就是静态内部类。 1 public class Out { 2 private static int a; 3 private int b; 4 public static class Inner { 5 public void print() { 6 System.out.println(a); 7 } 8 } 9 }   1)静态内部类可以访问外部类所有的静态变量和方法,即使是private的也一样。   2)静态内部类和一般类一致,可以定义静态变量、方法、构造方法等。   3)其他类使用静态内部类需要使用“外部类.静态内部类”方式。如下所示:Out.Inner inner = new Out.Inner();  inner.print();   4)Java集合类HashMap内部就有一个静态内部类Entry。Entry是HashMap存放元素的抽象,HashMap内部维护Entry数组用来存放元素,但是Entry对使用者是透明的。像这种和外部类关系密切的,且不依赖外部类实例的,都可以使用静态内部类。 2.成员内部类   定义在类内部的非静态类,就是成员内部类。成员内部类不能定义静态方法和变量(final修饰的除外)。这是因为成员内部类是非静态的

c#基础学习(0708)之静态类

匿名 (未验证) 提交于 2019-12-03 00:40:02
再静态类中,所包含的所有成员都是“静态成员” 不是所有的静态成员都必须卸载静态类中 静态成员时属于“类”的,不是属于具体“对象”的,所以访问静态成员的时候不能通过对象来访问(对象。属性名),只能通过“类名”来直接访问静态成员。 在程序的任何一个地方访问该静态成员,其实访问的都是同一块内存,有一个地方把该值改变,则所有地方获得的值都变了。 静态成员的数据直到程序退出后才会释放资源,而实例对象,只要使用完毕就可以执行垃圾回收。 类中的静态成员在第一次使用静态类的时候进行初始化 静态构造函数的特点: 静态构造函数不能手动来调用,而是在第一次使用静态成员的时候自动调用,所以不能为静态构造函数添加访问修饰符,默认为peivate 因为静态构造函数时系统自动调用的,所以也不需要(不能)添加任何参数 静态构造函数只执行一次 在第一次使用静态类或者静态成员的时候执行 多态 多态的作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的变成,以适应需求的不断变化 进行类型转换的另外一种方式(as) 通过as的方式进行类型转换,即便转换失败也不会报异常,而是返回一个null Person p=new Student(); Student s=p as Student; if(s!=null) { Console.WriteLine("转换成功!") } else

静态内部类

匿名 (未验证) 提交于 2019-12-02 23:49:02
静态内部类 静态内部类: 1、用static修饰的内部类,称为静态内部类,完全属于外部类本身,不属于外部类某一个对象 2、static关键字的作用是把修饰的成员变成类相关,而不是实例相关 3、静态内部类可以包含静态成员,也可以包含非静态成员,但是在非静态内部类中不可以声明静态成员。 4、静态类内部不可以访问外部类的实例成员,只能访问外部类的类成员,即使是静态内部类的实例方法也不能访问外部类的实例成员,只能访问外部类的静态成员 5、外部类不可以定义为静态类,Java中静态类只有一种,那就是静态内部类,顶级类不能用static 修饰 6、外部类如何调用静态内部类中的属性和方法    1)外部类可以通过创建静态内部类实例的方法来调用静态内部类的非静态属性和方法    2)外部类可以直接通过“ 外部类.内部类.属性(方法)” 的方式直接调用静态内部类中的静态属性和方法 7、如何创建静态内部类实例    1)在非外部类中:外部类名.内部类名 name = new 外部类名.内部类名();    2)在外部类中:内部类名 name = new 内部类名(); 代码例子: public class StaticDome01 { private int a = 10;//实例成员 private static int b = 20;//类成员 static class StaticClass{

Java中的内部类怎么用

 ̄綄美尐妖づ 提交于 2019-12-02 08:17:01
一、为什么需要内部类? java 内部类有什么好处?为什么需要内部类? 首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法的名称,参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口。由于内部类对外部类的所有内容都是可访问的,所以这 样做可以完成所有你直接实现这个接口的功能。 不过你可能要质疑,更改一下方法的不就行了吗? 的确,以此作为设计内部类的理由,实在没有说服力。 真正的原因是这样的, java 中的内部类和接口加在一起,可以的解决常被 C++ 程序员抱怨 java 中存在的一个问题 没有多继承。实际上, C++ 的多继承设计起来很复杂,而 java 通过内部类加上接口,可以很好的实现多继承的效果。二、内部类的基本定义在类的内部可以定义成员变量和方法,而且在类的内部也可以定义另一个类,如果类 Outer 的内部在定义一个类 Inner ,此时 Inner 就成为内部类,而 Outer 则称为外部类。 内部类可以声明为 public 或 private 。当内部类声明为 public 或 private ,对其访问权限于成员变量和成员方法完全相同。代码如下: package com.se.innerclass; class Outer { private String info = " 我爱你中国 "; class

Java核心技术第六章--内部类

霸气de小男生 提交于 2019-12-01 02:43:51
一、什么是内部类? 内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限)。 内部类的分类 1、成员内部类 2、局部内部类 3、静态内部类 4、匿名内部类 二、内部类的共性 1、内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号 。 2、内部类不能用普通的方式访问。 3、内部类声明成静态的,就不能随便的访问外部类的成员变量了,此时内部类只能访问外部类的静态成员变量 。 4、外部类不能直接访问内部类的的成员,但可以通过内部类对象来访问 为什么需要内部类 其主要原因有以下几点:   1、内部类方法可以访问该类定义所在的作用域的数据,包括私有的数据   2、内部类可以对同一个包中的其他类隐藏起来,一般的非内部类,是不允许有 private 与protected权限的,但内部类可以   3、可以实现多重继承   4、当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷 使用内部类最吸引人的原因是:   每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。大家都知道Java只能继承一个类