final
关键字
final
关键字表示最终的,被它修饰的成员属性和局部变量,该变量只能被赋值一次并且都是不能修改的。还有就是 final修饰的方法不能够被子类重写,final修饰的类不能够被子类继承 ,这个使用的比较少。
public class Person{
private final int id = 1234;//id 是final修饰的成员变量
private final String name = "xaohua";//name是final修饰的成员变量
public void setId(int id){
this.id = id;
}
public void setName(String name){
this.name = name;
}
}
class Test1{
public static void main(String[] agrs){
Person people = new Person();
people.setId(4567);//调用方法尝试修改id值
people.setName("liming");//调用方法尝试修改name值
final int a = 10;
a = 20;//尝试修改a的值
}
}
/**编译报错
Person.java:6: 错误: 无法为最终变量id分配值
this.id = id;
^
Person.java:9: 错误: 无法为最终变量name分配值
this.name = name;
^
Person.java:25: 错误: 无法为最终变量a分配值
a = 20;
^
3 个错误
*/
final
还可以用来修饰形参,如果想要一个方法中传入的参数不被改变就可以在形参处加上final
关键字
public class Test3{
public static void main(String[] args){
int a = 6;
int b = 9;
add(a,b);
}
public static void add(final int a,final int b){/、写成final int a那么传入方法的参数就不会被改变了
a = 1;//尝试去改变a,b的值
b = 2;
System.out.println(a + " " +b);
}
}
/**此时编译的话也会报错,保证了传入的参数不会被改变
Test3.java:8: 错误: 不能分配最终参数a
a = 1;
^
Test3.java:9: 错误: 不能分配最终参数b
b = 2;
*/
Integer
类的随意装换基本数据类型功能
Integer
类里面包含了一些方法可以把字符串转化为Integer类型的数据后再转换成其他一些基本数据类型。
- 把String类型的数字转换成Integer类型的数字
Integer a = new Integer("123")//输出的是Integer类型的123,这是通过构造方法来转换的
Integer b = Integer.valueOf("123");//valueOf方法同样能把String类型的数字转换成Integer类型的
//也可以通过调用Integer类的parseInt方法直接把String类型的转换成int类型的
String str = "456";
int b = Integer.parseInt(str);//输出的是int类型的456
-
Integer类型的数据转换成其他类型的数据
Integer a = new Integer("123"); //Integer转分别换成int,float,double,long,byte int i = a.intValue(); short b = a.shortValue(); float c = a.floatValue(); double d = a.doubleValue(); long e = a.longValue(); byte f = a.byteValue(); //可以希望一个getType方法来看数据的类型 public static String getType(Object obj){ return obj.getClass().toString(); }
getClass()
方法是用于获取对象的运行时对象的类。 再用toString
方法把它用字符串的形式表示出来就能看到是属于什么类型的数据了。 -
Integer类中的还提供了
max(int a,int b)和min(int a,int )
方法来比较两个进行两个int类型数据的比较,非常方便。