java 从零开始,学习笔记之基础入门<数据类型的转换>(五)

本文详细介绍了Java中数据类型的自动和强制转换原则,包括不同整数类型间的转换、浮点数到整数的转换以及字符串到数值类型的转换方法。同时探讨了基本数据类型与包装类之间的转换,并给出了实例说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据类型的转换

各种整型数据类型的转换:

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类的对象,所以stnull

//如果从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());

}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值