码迷,mamicode.com
首页 > 编程语言 > 详细

Java高级特性 实用类

时间:2017-12-25 14:59:27      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:经典   int   1.0   print   dom   1.4   nal   val   学习   

枚举enum   

枚举是一个类,就是一个引用数据类型

枚举类中根据需求定义多个枚举值,

枚举值一旦被定义,不允许被改变,静态的常量

  01.在Student类中定义Gender类型的sex私有属性:

   private Gender sex;

   02.创建Gender的枚举 

public enum Gender{

MAN("男"),WOMEN("女");   

private String sex;

private Gender(String sex){
this.sex=sex;
}

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}

   }

  03.在测试类中调用

stu.setSex(Gender.MAN)

String sex = stu.getSex().getSex();
System.out.println(sex);//控制台输出--->男

1.我们是用的封装不能从根本上禁止用户的输入

2.使用枚举,从根本上限定用户的输入

3.所有的枚举值都是静态常量,可以通过枚举类.枚举值

4.枚举类中构造方法,必须是私有的 private

基本数据类型的包装类

1.集合中的泛型,<>不允许出现基本数据类型,包装类可以

2.定义了一个基本数据类型的变量,变量名能点出来东西

3.基本数据类型不能转换成对象,包装类可以

4.所有的包装类都是由final修饰的,不允许被继承

5.在基本数据类型需要转换成对象的时候,使用包装类

6.jdk1.5以后,允许基本数据类型和包装类进行混合运算,底层有装箱和拆箱操作

基本数据类型    包装类
byte          Byte
short         Short
int          Integer
long          Long
float         Float
double        Double
上面的六种都是数值类型!都是 extends Number implements Comparable<T>

public abstract class Number implements java.io.Serializable 支持 序列化


char Character
boolean Boolean

上面两种都是 implements java.io.Serializable, Comparable<T>

比如说:
public Serializable getNum(Serializable s){
}

我们调用getNum(参数可以是8种包装类中的任何一个)
返回值也可以是 8种包装类中的任何一个

 

装箱和拆箱--->包装类和基本数据类型的转换

    01.装箱:把基本数据类型转换成对应的包装类Integer num=1

    02.拆箱:把包装类转换成对应的基本数据数据类型 int num2=num

基本数据类型转换:

   01.自动类型转换

   02.强制类型转换

引用数据类型转换

  01.向下转换

  02.向上转换

/**
* 1.所有的包装类都有对应的基本数据类型作为参数,来构造自己的实例
*/
@SuppressWarnings("unused")
@Test
public void Test01(){
Byte b=new Byte((byte) 1);
Short s=new Short((short) 1);
Integer i=new Integer(1);
Long l=new Long(1);
Float f=new Float(1.0);
Double d=new Double(1.0);

Character c=new Character(‘1‘);
Character c2=new Character((char) 20);
Boolean bo=new Boolean(true);
}
/**
* 1.Float有三种实例化的方法参数分别是double float 和String
* 2.除了Character以外的的7种包装类都有将String 作为参数 来构建自己的实例
* 6种数值类型的的包装类都继承了Number
* 所以在使用String作为参数来创建自己的实例时
* 如果参数不能转换成数值 则抛出NumberFormatException
*/
@SuppressWarnings("unused")
@Test
public void Test02(){
Byte b=new Byte("1");
Short s=new Short("1");
Integer i=new Integer("1");
Long l=new Long("1");
Float f=new Float("1");
Double d=new Double("1");

//Character c=new Character("1");
Boolean bo=new Boolean("1");
Boolean bo2=new Boolean(true);
System.out.println(bo+"\n"+bo2);
}
/**
* 1.除了Character以外的的7种包装类都有parseXxx(String s)
* 比如说Byte b=new Byte("1");
* b.parseByte(String);
* 01.4种整型对应的包装类都是parseXxx(String s,int radix)radix进制转换
* 02.其他4种没有parseXxx(String s,int radix)
* 03.Character压根没有parseXxx()
*/
@SuppressWarnings("unused")
@Test
public void Test03(){
Byte b=new Byte("1");
Short s=new Short("1");
Integer i=new Integer("1");
Long l=new Long("1");

Float f=new Float("1");
Double d=new Double("1");
Character c=new Character(‘1‘);
Boolean bo=new Boolean("true");

System.out.println(bo);
}
/**
* 4.进制转换 需要学习位运算
*/
@Test
public void Test04(){
System.out.println("2进制的10对应的数据----->"+Integer.toBinaryString(10));
System.out.println("8进制的10对应的数据----->"+Integer.toOctalString(10));
System.out.println("16进制的10对应的数据----->"+Integer.toHexString(10));
}
/**
* 5.valueOf
* 把基本数据类型转换成对应的包装类---->装箱
* xxxValue 8中包装类型都有
* 把xxx类型转换成对应的基本数据类型--->拆箱
*/
@Test
public void Test05(){
int num=3;
Integer i=Integer.valueOf(num);
num=i.intValue();
}
/**
* 6.经典的面试题
* 因为Integer.valueOf(num)会缓存-128~127之间的数据
* 如果我们的数据在这个区间,不回去创建新的对象,而是从缓存中获取
* 否则会new Integer()
*/
@Test
public void Test06() {
int num1=127;
int num2=127;
System.out.println(num1==num2);
Integer a1=new Integer(127);
Integer b1=new Integer(127);
System.out.println(a1==b1);
Integer a=127;
Integer b=127;
System.out.println(a==b);
Integer c=128;
Integer d=128;
System.out.println(c==d);
System.out.println("1"+1+1);
}

/**
* 111
* 211
*/

@Test
public void Test07() {
System.out.println("1"+1+1);
System.out.println(1+1+"1"+1);
}

 

Math
01.就是一个算术类
02.是final修饰
03.除了构造方法之外所有的方法都是静态方法,方便我们使用

天花板函数:
ceil 天 向上取整 3.1 ==》4 3.0 ==》3
floor 地 向下取整 3.9 ==》3

四舍五入
round(2.5)==>3
round(2.498)==>2

Random
随机的boolean 数值

 

 

Java高级特性 实用类

标签:经典   int   1.0   print   dom   1.4   nal   val   学习   

原文地址:http://www.cnblogs.com/s10-/p/8108883.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!