java新特性功能

foreach循环

public class TestDemo {

	public static void main(String[] args) {
		
		int [] data  = new int [] {1,2,3,4,5};
		//foreach循环是for循环的加强型
		//循环每执行一次,数组角标向后移一位,把数组中相应数据设置给变量
		for (int x : data) {
			System.out.println(x + ",");
		}
		
	}

}

静态导入

package com.a.assist;

public class MyMath {

	public static int add(int x, int y) {
		return x + y;
	}	
	public static int div(int x, int y) {
		return x / y;
	}
	
}
package com.a.test;
//用下面语句导入表示把MyMath类中所有static 方法倒入本程序中
//在调用方法处不出现类名称
//前提是这个类中定义的方法都是static方法
import static com.a.assist.MyMath.*;
public class TestDemo {

	public static void main(String[] args) {
		
		System.out.println(add(1,2));
		System.out.println(add(10,2));

	}

}

可变参数

package com.a.assist;
//可变参数,方法传递的参数个数若干不确定时定义的形式
//统一用数组进行接收
public class Add {
	public static int add(int ... data) {
		int sum = 0;
		for (int x = 0; x < data.length; x++) {
			sum += data[x];
		}
		return sum;
	}
}
package com.a.master;

import com.a.assist.Add;

public class TestDemo {

	public static void main(String[] args) {
		
		System.out.println(Add.add(1,2,3));
		System.out.println(Add.add(1,2));

	}

}

泛型

package com.a.b;
//泛型主要解决当把Object作为类型定义属性和方法的数据类型时,取出数据对象向下
//转换时容易出现的类对象转换安全隐患,因为Object可以接受所有对象数据类型
//赋值时容易出现类型不同的赋值,运行前不容易发现
//泛型就是提前给类的属性和方法的数据类型提前标记占位,具体使用时在具体设置具体的类型
class Point<T> {
	private T x;
	private T y;
	public T getX() {
		return x;
	}
	public void setX(T x) {
		this.x = x;
	}
	public T getY() {
		return y;
	}
	public void setY(T y) {
		this.y = y;
	}
}
public class TestDemoA {
	public static void main(String args[]) {
		Point<String> p = new Point<String>();
		p.setX("东经108");
		p.setY("北纬20");
		String x = p.getX();
		String y = p.getY();
		System.out.println("x=" + x + " y=" + y);
	}
}
package com.a.c;
//通配符?为了解决接受同类中不同类型对象引用传递参数类型不同传参问题
class Message<T> {
	
	private T msg;

	public T getMsg() {
		return msg;
	}

	public void setMsg(T msg) {
		this.msg = msg;
	}
	
}
public class TestDemoB {

	public static void main(String[] args) {
		
		Message<String> m = new Message<String>();
		Message<Integer> s = new Message<Integer>();
		m.setMsg("吃饭");
		s.setMsg(1);
		fun(m);
		fun(s);

	}
	
	public static void fun(Message<?> temp) {
		
		System.out.println(temp.getMsg());
		
	}

}
package com.a.d;
//泛型接口
interface IMessage<T> {
	public abstract void print(T t);
}
class MessageImp implements IMessage<String> {
	//子类为父接口设置具体泛型类型
	public void print(String t) {
		System.out.println(t);
	}
}
public class TestDemoC {

	public static void main(String[] args) {
		
		IMessage<String> m = new MessageImp();
		m.print("输出内容");

	}

}
package com.a.e;
//泛型方法
public class TestDemoD {

	public static void main(String[] args) {
		
		String str = fun("lala");
		System.out.println(str.length());

	}
	
	public static <T>T fun(T t) {
		return t;
	}

}

枚举的实际应用

package cn.a.b;
//定义可用实例
//在switch语句中使用枚举
enum Color {
	RED,GREEN,BLUE;
}

public class TestDemo {

	public static void main(String[] args) {
		Color c = Color.RED;
		switch(c) {
			case RED:{
				System.out.println("红色");
				break;
			}
			case GREEN:{
				System.out.println("绿色");
				break;
			}
			case BLUE:{
				System.out.println("蓝色");
				break;
			}
		
		}
	}

}
package cn.a.c;
//在类结构中使用枚举
enum Sex {
	MALE("男"),FEMALE("女");
	private String title;

	private Sex(String title) {
		this.title = title;
	}
	public String toString() {
		return this.title;
	}
}
class Member {
	private String name;
	private int age;
	private Sex sex;
	public Member(String name, int age, Sex sex) {
		super();
		this.name = name;
		this.age = age;
		this.sex = sex;
	}
	public String toString() {
		return "Member [name=" + name + ", age=" + age + ", sex=" + sex + "]";
	}
}
public class TestDemo {

	public static void main(String[] args) {
		System.out.println(new Member("wu",18,Sex.MALE));

	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值