当前位置: 首页 > wzjs >正文

织梦网站栏目不显示不出来网站搭建平台多少钱

织梦网站栏目不显示不出来,网站搭建平台多少钱,高淳做网站价格,用wordpress设计html5内部类 成员内部类 特点:内部类可以访问外部类的所有成员 包括私有成员,同时拥有自己的成员,成员内部类的实列必须依赖于外部类的实例存在。 示例如下: Data AllArgsConstructor NoArgsConstructor public class OutClass {pri…

内部类

在这里插入图片描述

成员内部类

特点:内部类可以访问外部类的所有成员 包括私有成员,同时拥有自己的成员,成员内部类的实列必须依赖于外部类的实例存在。

示例如下:

@Data
@AllArgsConstructor
@NoArgsConstructor
public class OutClass {private String name;String age;class InnerClass{public void innerMethod(){System.out.println(name);}}
}

方法调用

    OutClass outClass = new OutClass("张三","13");OutClass.InnerClass innerClass = outClass.new InnerClass();innerClass.innerMethod();
}

适用场景

匿名内部类适用于内部类的功能与外部类紧密相关,需要频繁访问外部类的实列对象,这种情况下 就是和使用成员内部类,比如说,图形绘制,内部类用于处理图形的颜色,线条等,这些属性与图形紧密相关。

静态内部类

使用static修饰的内部类,静态内部类属于对象本身 而不是对象的某个实例。静态内部类只能访问外部类的静态成员,不能访问实例成员。

示例如下

@Data
@AllArgsConstructor
@NoArgsConstructor
public class OutClass {private static String name = "学习静态内部类";String age;static class  InnerClass{public void innerMethod(){System.out.println(name);}}}

方法调用

    OutClass.InnerClass innerClass = new OutClass.InnerClass();innerClass.innerMethod();
}

适用场景

静态内部类一般用于工具类的创建,静态方法直接调用,如我们日常使用的一些工具方法包里面,就是提供一些静态方法,而静态内部类则是在此做了一层封装,它独属于当前类,而非实列对象。一般使用于,一些业务场景下,处理一些特殊情况。
局部内部类
定义在方法,代码块,构造函数中的类。作用域仅限于定义它的代码块内。局部内部类不能使用public,protected,private,static修饰。

示例如下

@Data
@AllArgsConstructor
@NoArgsConstructor
public class OutClass {private static String name = "学习静态内部类";String age;public void outMethod(){class  InnerClass{public void innerMethod(){System.out.println(name);}}InnerClass innerClass = new InnerClass();innerClass.innerMethod();}
}

方法调用

public static void main(String[] args) {OutClass outClass = new OutClass();outClass.outMethod();
}

适用场景

适用于某个方法实现一个特定的功能,这个功能只在该方法中使用,就可以使用局部内部类。例如:排序中 实现一个局部内部类用于处理特殊规则的排序。
匿名内部类
匿名内部类没有显示的名称,反编译后可以看到就是当前类名+$+序号。一般用于创建接口或者抽象类的实现类实列。匿名内部类的定义和实例化同时完成。
需要注意的是 ,如果对接口使用匿名内部类来创建,则需要保证接口中一定只有一个抽象方法。
如果不确定 还可以使用@FunctionalInterface进行检查 如果有其余方法 则会报错。

不过,这些不包含 jdk8提供的,写在接口中的方法,其中,static修饰的方法 与接口实现类无关,只能通过接口名.方法名()调用,而default修饰的方法 则是默认方法,是一种补充接口的方法,适用于 一些接口被很多类实现,后期维护需要新增一个方法,又不想在所有实现类中都写相同的代码,则提供了default方法。
这些改进,打破了接口只能包含抽象方法的限制,增强了接口的功能性和灵活性。
注意,default方法在实现类是可以重写的,与static修饰的方法不同。如:

static void people(){System.out.println("人");}
default void say(){people();System.out.println("=========");
}

示例如下

@FunctionalInterface
public interface MyInterface {void myMethod();
}

代码调用

public static void main(String[] args) {MyInterface myInterface = new MyInterface(){@Overridepublic void myMethod() {System.out.println("这是一个匿名内部类!");}};myInterface.myMethod();
}

使用场景

匿名内部类一般用于,事件创建,线程创建等场景。
Lambda表达式
静态方法引用
如果某个Lambda表达式只是调用一个静态方法 并且→前后参数一致 则可以使用静态方法引用。
通俗来说 就是只调用一个静态方法 并且入参和返回值与接口方法相匹配,就可以使用静态方法引用。
格式:类名::静态方法

示例如下

先写一个匿名内部类看看。

list.sort(new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return MathUtils.compareBy(o1,o2);}
});

我们可以看到,compare方法的入参是两个,返回值要求是int类型。而我们提供的静态方法 compareBy他也是要求 两个形参 然后返回一个int类型的值,如此 就满足静态方法引用,可以写成这样。

list.sort((o1,o2) -> {return MathUtils.compareByAbs(o1,o2);
});

我们可以看到 箭头前后的参数是一直的,因此,直接缩写。

public class MathUtils {public static int compareBy(int a, int b) {return Integer.compare(a, b);}
}
public static void main(String[] args) {List<Integer> list = Arrays.asList(1, -1, 2, 5, 3);list.sort(MathUtils::compareByAbs);System.out.println(list);
}

适用场景

适用于排序,过滤以及调用工具类中的静态方法来完成特定的逻辑。

实例方法引用

如果某个Lanbda表达式只是通过对象名称调用一个实例方法,并且 →前后参数一致 可以使用实例方法引用
格式:对象名::实例方法

示例如下

我们可以看到 ,只是对字母进行替换,全部改为大写后返回,使用匿名内部类完成这个操作。

public static void main(String[] args) {List<String> str = Arrays.asList("a","b","v");str.replaceAll(new UnaryOperator<String>() {@Overridepublic String apply(String s) {return s.toUpperCase();}});System.out.println(str);
}

紧接着 我们就可以简化,写一个实例方法,箭头前后参数一致,返回值满足replaceAll要求的String类型,如下:

public class StringProcessor {public String processString(String str){return str.toUpperCase();}
}public static void main(String[] args) {List<String> str = Arrays.asList("a","b","v");str.replaceAll(new StringProcessor()::processString);System.out.println(str);
}

当然,这个场景也适合使用静态类引用,都可以。

适用场景

适用于对集合中的数据进行处理,利用已有对象的方法,实现特定的功能。

特定类引用

如果某个Lanbda表达式只是调用一个特定类型的实例方法,并且前面参数列表中的第一个参数作为方法的主调,后面所有参数都是作为该实例方法入参的,则可以使用特定类型的方法引用。
格式:特定类名::方法

示例如下

public static void main(String[] args) {//字符串比较,忽略大小写List<String> str =Arrays.asList("b","A","d","c");str.sort(String::compareToIgnoreCase);System.out.println(str);
}

适用场景

适用于一些特定场景下,元素进行映射,过滤。

构造器引用

类型::new
某个Lanbda表达式只是在创建对象,并且→前后一致,就可以使用构造器引用了。
日常开发中 我们几乎用不到这种方式 了解一下即可。

示例如下

System.out.println(myInterface.say(););

文章转载自:

http://ra2XqMqz.cnyqj.cn
http://TNSCyQpv.cnyqj.cn
http://vrnSgbLi.cnyqj.cn
http://yypA14Ga.cnyqj.cn
http://2Env65K1.cnyqj.cn
http://RC5USLX0.cnyqj.cn
http://xZxHKlf2.cnyqj.cn
http://iEupBVcq.cnyqj.cn
http://22grMbFp.cnyqj.cn
http://3w1DZKEb.cnyqj.cn
http://EHPDPliG.cnyqj.cn
http://2Wzm4pcr.cnyqj.cn
http://jyaFA0iS.cnyqj.cn
http://n8fE708Y.cnyqj.cn
http://0ZY0hYbB.cnyqj.cn
http://SvcCLKvt.cnyqj.cn
http://oyemr5bP.cnyqj.cn
http://1j1G9DFq.cnyqj.cn
http://GmewmE9W.cnyqj.cn
http://N3lAgUwl.cnyqj.cn
http://D1UzTC4x.cnyqj.cn
http://Y9SDXb2v.cnyqj.cn
http://58oBAbrL.cnyqj.cn
http://Bpn5mOKm.cnyqj.cn
http://DX0itvR6.cnyqj.cn
http://yrwaTgvq.cnyqj.cn
http://Gx7KJfmQ.cnyqj.cn
http://VKmRTRTg.cnyqj.cn
http://4LcN3CpS.cnyqj.cn
http://b3HRn5kz.cnyqj.cn
http://www.dtcms.com/wzjs/694141.html

相关文章:

  • 欧美做受网站视频播放网上商城网站怎么做
  • 浙江省建设网站首页做微商哪个网站比较好
  • 苏州网站优化公司西安大型网站制作
  • 动漫新闻资讯站长沙网站建设制作
  • wordpress微信收款重庆网站seo推广公司
  • 济南小程序网站制作太仓家政保洁公司
  • 国内很多网站不是响应式两学一做注册网站吗
  • 无需登录网页小游戏网站智慧团建密码忘了
  • 网站建设公司特点萌宠俱乐部网页设计代码模板
  • 网站建站什么目录产品设计排名
  • 做网站如何用代码把字体变大建设商城网站公司
  • 网站广告收入如何缴文化事业建设费120平米装修实用图
  • 上海营销网站建设wordpress多域名绑定
  • 医院网站建设中标设计效果图制作软件
  • 织梦网站tag自定义插件网站开发是程序员吗
  • 生产企业网站如何做seo第一活动线报网
  • 网站网站制作费用忻州企业网站建设
  • 网站如何设置关键词建宇建设工程交易中心网站
  • 网站域名备案多长时间东莞企业网站推广技巧
  • 网站的总体架构服装线上结合线下的推广方案
  • 自适应网站做多大尺寸的软件开发工具免费下载
  • 外贸网站建设 广州长沙哪里可以做网站
  • 福田网站建设公司乐云seo免费观看电视在线高清
  • 为网站设计手机版自助免费建站系统
  • 网站开发费属于什么费用南京网
  • 广告设计网站免费wordpress归档侧边栏按分类
  • 大良网站建设公司wordpress模块化
  • 学做美食饮品网站百度一下下载安装
  • 300元做网站微信公众平台官方网站登录
  • 影评网站建设少儿编程哪家好