数据类型的转换
各种整型数据类型的转换:
v 通常,我们需要在不同的数据类型之间进行转换。
v 简单类型除了boolean类型以外,其他的数据类型可以自动转换成其他的数据类型,只要遵循如下图所示的原则:
package com.ibm.third; publicclass NumberType { //boolean类型属于逻辑运算取值只能有true/false publicstaticvoid main(String[] args) {
// 各种数据类型之间的相互转换 // 转换的分类:隐式转换和显示转换 // 数值类型取值范围:double>float>long>int>short>byte // 隐式转换:将取值范围小的类型的值转换成取值范围大的类型的值 int i2=24; doubled=i2;
byte b4=100; shorts7=b4;
//显示转换:将取值范围大的类型的值转换成取值范围小的类型 //如果大转小会造成数据丢失,需要进行强制类型转换。
double d5=12.5d; double d6=12.68d; double d7=-12.68; // 强制类型的转换格式:目标类型目标属性=(目标类型)原类型; int i8=(int)d5;//将double类型强制转换成整型; int i9=(int)d6; int i10=(int)d7; System.out.println(i8); System.out.println(i9); System.out.println(i10);
Object obj; String str="100";//将str的值加100 inti11 = Integer.parseInt(str);//将字符串转换成我们的int类型 doubled11 = Double.parseDouble(str); //int -->Integerbyte -->Byte //char -->Characterboolean -->Boolean //short -->shortlong -->Long //double -->Doublefloat-->Float
//将char型的值转换成float char c9='9'; float s9=c9; System.out.println(s9); //先将char-->int-->float // int f10=(int)c9; // float f11=f10; // System.out.println(f11); //char -->String -->int -->float String str1= String.valueOf(c9); System.out.println(str1); inti01 = Integer.parseInt(str1); float f01 =Float.parseFloat(str1); System.out.println(f01);
//引用类型:除了基本数据类型以外的其他类型 String ste8; Object obj8;
} }
|
Java引用类型
package com.ibm.third; publicclass Student { private Stringname; private int age; private Stringclassroom;
public Student(){
}
public Student(String _name,int _age,String _classroom){ name = _name; age = _age; classroom = _classroom; }
publicvoidsetName(String _name){ name = _name; } public String getName(){ returnname; } publicvoid setAge(int _age){ age = _age; } publicint getAge(){ returnage; } publicvoid setClassroom(String _classroom){ classroom = _classroom; } public String getClassroom(){ returnclassroom; } }
|
全局变量和局部变量
v 局部变量在使用之前,必须先初始化。
v 全局变量如果没有初始化就拿来使用,系统将会自动给它一个默认的初值。
package com.ibm.third; publicclass ChangAttr { //成员变量 //定义在类里面,方法的外面的变量 //定义一个成员变量在类中所有的方法中都可以使用(静态方法除外) //静态方法里不能直接使用非静态的公有属性 //定义一个成员变量不用对变量进行初始化,如果不给值默认的就是变量类型的初始值
//定义全局变量 inti=200; String name; publicstaticvoid main(String[] args) {
//定义局部变量 String name1=null; System.out.println(name1); // System.out.println(name);
} publicvoid show(){ System.out.println(name); } //局部变量 //定义在方法里面的变量变量所处的位置就是在方法体里面 //局部变量在被调用之前必须进行初始化//局部变量只能在当前的方法中使用,任意其它方法不能使用 }
|
值传递
package com.ibm.third; publicclass ResultTrans { //值传递 publicstaticvoid main(String[] args) { String str = "java_lu"; System.out.println("----------"+str); ResultTrans rt = new ResultTrans(); rt.show(str); System.out.println("=========="+str); str=rt.show2(str); System.out.println("++++++++++++++++"+str); } publicvoid show(String str){ str="ibm"; System.out.println(str); }
public String show2(String str){ str="ibm"; System.out.println(str); return str; } } |
对象传递
package com.ibm.third; publicclass ShowObject { publicstaticvoid main(String[] args) { Student st = null;//声明一个Student类对象的引用 Student st5 = null; //System.out.println(st); //st只是一个引用变量,没有具体的创建Student类的对象,所以st为null //如果从null的对象中取对象的属性值会报空值指针异常 //System.out.println(st.getName());
//创建对象 st = new Student(); System.out.println(st); System.out.println(st.getName()); Student st2=st; Student st3 = new Student(); st5=st3; System.out.println(st2); System.out.println(st3); System.out.println(st5); } } |
对象和值传递的例子
package com.ibm.third; publicclass Test { publicstaticvoid main(String[] args) { Student st = new Student(); st.setName("张三"); st.setAge(18); st.setClassroom("javalu"); System.out.println(st); Test tt = new Test(); tt.show(st); System.out.println(st.getName());
}
publicvoid show(Student st){ //传递到show中的是st是在main中创建的st对象,所以是对象传递 //新创建的一个对象,虽然对象名和st一样,但是不是同一个对象 st= new Student("李斯",20,"大秦王朝"); System.out.println(st.getName()); } } |