https://www.cnblogs.com/felixnet/p/5193086.html https://docs.microsoft.com/zh-cn/dotnet/api/system.icomparable-1?redirectedfrom=MSDN&view=netframework-4.7.2 中文:必须至少有一个对象实现 IComparable. 序列排序时报这个错误 lstReports.OrderBy(r => new { r.DepartmentName, r.Re…
open class MyClass { private fun too()=object { var x : String ="x" } fun publictoo()=object { var x : String ="x" } fun bar(){ var x1 =too().x //publictoo().x // 编译错误,因为是public 方法返回类型是Any } } 总结:匿名对象只能用在本地函数或者private声明中,如果将匿名对象用于publi…
java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是类 某一特定类型的所有对象都可以接收相同的消息,因为同一类事物有共同的特性 面向对象开发 •就是不断的创建对象,使用对象,指挥对象做事情. 面向对象设计 •其实就是在管理和维护对象之间的关系. 面向对象特征 •封装(encapsulation) •继承(inheritance) •多态(polymo…
在项目中经常会用到字符串比较,但是有时候对字符串的操作比较多,规则各异.比如有的地方我们需要用排序规则,有的地方需要忽略大小写,我们该如何写一个比较容易操作的比较方法呢?重新实现IComparer接口不失为一个好办法. IComparable.CompareTo 方法 在MSDN上是这么解释(机器翻译过来)的: IComparable接口:定义一种特定于类型的通用比较方法,值类型或类通过实现此方法对其实例进行排序. IComparer接口:公开一种比较两个对象的方法. 详细理解就是: 在默认情况…
/* 匿名内部类:就是内部类的简写格式. 必须前提:内部类必须继承或者实现一个类或者接口. 匿名内部类其实就是一个匿名 子类对象. 格式:new 父类对象 or 接口(){ 子类内容:(覆盖父类的, 而且可以增加自己的方法) }//相当于将 继承父类 和 new 的过程 写到了一起有某有!很方便有某有! */ class Outer{ int num; public Outer(){ num = 5; } class Inner{ int num; public Inner(){ num = 1…
匿名对象就是没有明确给出名字的对象.一般匿名对象只使用一次,而且匿名对象只在堆内存中开辟空间,而不存在栈内存的引用. 一个普通的常量字符串就可以表示一个匿名String对象. 比如可以 int len = "hello".length(); 只要一个类是抽象的或是一个接口,那么其子类中的方法都可以使用匿名内部类来实现.最常用的情况就是在多线程的实现上,因为要实现多线程必须继承Thread类或是继承Runnable接口 public class AnonymousDemo { publi…
java学习面向对象之匿名内部类 之前我们提到“匿名”这个字眼的时候,是在学习new对象的时候,创建匿名对象的时候用到的,之所以说是匿名,是因为直接创建对象,而没有把这个对象赋值给某个值,才称之为匿名. 匿名对象回顾: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 class NoObject {       void method()     {           System.out.println("Hello N…
什么是继承? 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 多个类可以称为子类,单独这个类称为父类.超类或者基类. 子类可以直接访问父类中的非私有的属性和行为. 通过 extends 关键字让类与类之间产生继承关系. class SubDemo extends Demo{} //SubDemo是子类,Demo是父类 继承有什么好处? 提高代码的复用性. 让类与类之间产生了关系,是多态的前提. 继承的特点 1.Java只支持单…
匿名对象: 是指创建对象的时候,只有创建对象的语句,却没有把对象地址值赋给某个变量 创建一个普通对象: Person p = new Person(); 创建一个匿名对象: new Person(); 注意: 1.匿名对象只能使用一次 2.匿名对象可以作为参数传递 3.匿名对象可以当作方法的返回值 示例: public class Demo { public static Person getPerson(){ //普通方式 //Person p = new Person(); //return…
final关键字 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承了这些特殊类之后,就可以对其中的方法进行重写,那怎么解决呢?要解决上述的这些问题,需要使用到一个关键字final,final的意思为最终,不可变.final是个修饰符,它可以用来修饰类,类的成员,以及局部变量. final的特点 final修饰类不可以被继承,但是可以继承其他类. class Yy {} final clas…