Java面向对象编程_内部类

总览

在这里插入图片描述

其他文章链接

【 Java编程基础_注解与命名规则&数据类型&运算符&修饰符&流程控制】
【Java面向对象编程_方法&类与对象&数组&String类】
【Java面向对象编程_抽象类&接口&包装类&泛型】
【Java面向对象编程_包&访问控制权限&构造方法私有化&枚举】
【Java面向对象编程_异常的捕获与处理】


本文内容

在这里插入图片描述


1,内部类基础知识

在这里插入图片描述

demo_内部类
class Outer
{
	private String words="外部类私有属性";
	class Inner
	{
		public void say(){
			System.out.println(Outer.this.words);
		}
	}
} 

public class 内部类
{
	public static void main(String agrs[]){
		Outer.Inner in=new Outer().new Inner();
		in.say();
	}
}

2,匿名内部类

在这里插入图片描述

demo_匿名内部类
interface IMessage
{
	public void send(String str);
}

interface IMessageB
{
	public void send(String str);
	public static IMessageB getInstance(){
		return new IMessageB(){
			public void send(String str){
				System.out.println("hello "+str);				
			}
		};
	}
}
public class 匿名内部类
{
	public static void main(String agrs[]){
		IMessage mess=new IMessage(){
			public void send(String str){
				System.out.println("hello "+str);
			}
		};
		mess.send("world");

		IMessageB.getInstance().send("world");
	}
}

3,Lambda表达式

在这里插入图片描述

demo_Lambda表达式
@FunctionalInterface
interface IMath
{
	public abstract int add(int x,int y);
}
@FunctionalInterface
interface IMessage
{
	public abstract void send(String str);
}

public class Lambda表达式
{
	public static void main(String agrs[]){
		IMath math=(a,b)->a+b;
		System.out.println(math.add(10,20));
		IMessage mess=(str)->{
			System.out.println(str);
		};
		mess.send("hello");

	}
}

4,接口方法引用

在这里插入图片描述

demo_方法引用
@FunctionalInterface
interface IFunction<P,R>
{
	public R change(P p);
}

@FunctionalInterface
interface IFunctionB<R>
{
	public R change();
}

@FunctionalInterface
interface IFunctionC<P>
{
	public int change(P p1 ,P p2);
}

class Person
{
	public Person(){
		System.out.println("人");
	}
}
@FunctionalInterface
interface IFunctionD
{
	public void change();
}
public class 方法引用
{
	public static void main(String agrs[]){
		IFunction<Integer,String> fun=String::valueOf;
		System.out.println(fun.change(100).length());

		IFunctionB<String> funB="hello"::toUpperCase;
		System.out.println(funB.change());

		IFunctionC<String> funC=String::compareTo;
		System.out.println(funC.change("hello","Hello"));

		IFunctionD funD=Person::new;
		funD.change();
	}
}

5,内建函数式接口

在这里插入图片描述

demo_内建函数式接口
import java.util.function.*;
public class 内建函数式接口
{
	public static void main(String agrs[]){
		Function<String ,Boolean> funA="**hello"::startsWith;
		System.out.println(funA.apply("**"));

		Consumer<String> funB=System.out::println;
		funB.accept("hello");

		Supplier<String> funC="hello"::toUpperCase;
		System.out.println(funC.get());

		Predicate<String> funD="hello"::equalsIgnoreCase;
		System.out.println(funD.test("hell"));
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值