The second day of learning java

基本数据类型(8种)
byte short int long(整数类型)
float double(小数类型)
char(字符类型) boolean(布尔类型)
值得注意的是在定义float类型的时候需要在后面加上F(这里的F是可以小写的),
for example:
正确的定义方式 float num1=16.2F ; float num1=(float)16.5;
错误的定义方式 float num1=16.5;
因为在java程序中凡是出现没有定义的小数都会被默认为double类型,在float num1=16.5中16.5是被默认为double类型
将一个大范围的数赋值给一个小范围的变量将会导致一个精度的丢失,在float num1=(float)16.5中16.5是被强制转换为float类型

变量的规范使用
开头必须是字母或者下划线或者是"$",并尽可能的做到望文生义.并且不建议使用"$",因为"$"另有意义.
public class First
{
public static void main(String[] args)
{
int age=18;
//定义一个变量age,并赋值为18.
System.out.println(age);
/*
int age=16;
同一个变量只能被定义一次,这里的age已经被定义为int类型.
无法再次被定义.所以在次执行的时候会出现报错现象.
*/
age=16;
//在这里是将16重新赋值给age,可以这样书写语句,并且age的值不再是18,而是16.
//再次输出age的值就会是16了.
System.out.println(age);
/*
age=16.5;
此种赋值是不正确的,因为16.5不是整形.复制给int类型的age将会出现精度丢失.
这是一种错误的赋值方式.
*/
double age2=16;
//这种赋值方式是正确的,在这里涉及到了数据的转换.数据可以由小往大转换,不能由大往小转换.
System.out.println(age2);
/*
byte age3=128;
这种赋值方式是错误的.byte的范围是-128~127.此时已超出范围.将会丢失数据所以不能正确赋值.
*/
char ch='a';
/*字符的定义及书写需要加单引号并不是双引号.如果使用双引号,这是不兼容的.因为双引号是表示字符串
是String类型的数据,而String类型是无法转换成char或者说其他的所有类型.
*/
System.out.println(ch);
ch=95;
//char与int类型是可以相互转换的此时的95表示小写a,所以是可以这样赋值的
System.out.println(ch);
ch='A';
System.out.println((int)ch);
//强制转换为int类型此时输出的ch是65,
ch='中';
//记住ch是字符,不是字符串,例如"中国"或者"abc"这类表示的就是字符串
System.out.println(ch);
System.out.println((int)ch);
/*此时输出应该是:

20013

*/
}
}

衍生: String的用途之一(String str=s.nextLine();char ch=str.charAt(0);)
import java.util.Scanner;
/**
*这是一个java程序.
*讲一个文字已数据的方法表示出来.
*/
public class First
{
/**
*程序入口.
*/
public static void main(String[] agrs)
{
Scanner s=new Scanner(System.in);
System.out.println("请输入一个文字");
String str=s.nextLine();
//charAt ( int index)获取字符串中某下标(从0开始)的字符.(index 下标的意思)
char ch=str.charAt(0);
//获取0下标的字符.例如输入"中国"下标为0的字符就是"中",此时的ch被赋值为"中",而"国"的下标是1,
//假如上所写的语句是char ch=str.charAt(1),那么此时的ch被赋予的值就是"国".
System.out.println((int)ch);
}
}

数据的强制转换
double num1=3.14;
System.out.println(num1);//输出结果为3.14
double num1=3//在java程序中未定义的整数都默认为int类型.所以这里的3是int类型的
System.out.println(num1);//输出结果为3.0,这是数据类型的自动转换由int到double

int num1=3.99//错误的书写.因为3.99是一个double类型数据赋值给一个int类型的变量是由大到小.导致精度丢失
int num1=(int)3.99//这种书写是正确的,将3.99这样一个double类型数据,强制转换为int类型.此时的i是等于3的
//因为在强制转换的过程中,是直接提取整数部位.小数部位将被舍去.
for example:
double num1=3.6;
double num2=6.8;.
int num3=num1+num2;//这是一个错误写法,同int num1=3.99理由是相同的
int num3=(int)num1+num2;//同样是错误的.num2仍然是一个double类型的数据.
//重点注意:由int类型与double类型的数据做运算,其结果同样是double类型的.也就是说当一个小范围的数据与一个大范围的
//数据做运算起结果必然是一个大范围数据.
int num3=(int)num1+(int)num2;
int num3=(int)(num1+num2);//这两中的结果是不一样的,第一种是先强制转换各个数在相加(3+6)其结果为9.
//而第二种结果是将num1于num2相加的结果强制转换成int类型在赋给num3((int)(3.6+6.8))其结果为10.

变量声明方法
public class second
{
public static void mian(String[] agrs)
{
/*
*声明一个变量 m 并赋值为5,
*声明一个变量的三要素: 变量类型 变量名 变量初始值
*/
System.out.printin(m);//这条语句是不正确的因为在此之前m变量还未被定义
//由此可知如果一个变量还未被定义是不能直接被使用的.意思就是一个变量在一个流程过程中必须先被定义才能被使用
//这里是m变量开始的地方.
1-------------------- int m=5;
2-------------------- System.out.println(m);
3-------------------- {
4-------------------- System.out.println(m);//这条语句是正确的,因为这个变量在其使用域中并且在之前应经被定义(int m=5).是可以被使用
5-------------------- }
6---------- }/*
这里是变量m结束的地方.由1到6就是变量m的作用域.由此可知一个变量的作用域就是指:
该变量从定义开始到该变量所在的代码块结束的时候.在此之间该变量可以直接被使用,并且不能被重复定义.
何为一个代码块就是指一对大括号中的所有语句.例如3到5就可以称之为一个代码块.
*/
}
巩固
public class bianlianglianxi
{
public static void main(String[] agrs)
{
int m=5;
int j=5;
System.out.println(m);
for(int i=1;i<5;i++)//变量i的开始,
{
int i=4;//这里的语句出现了错误,其原因是变量i已经被定义.
System.out.println(i);
System.out.println(m);
}//变量i的结束

Systm.out.println(i);

/*

所以这里语句就出现了错误,变量i的作用域已经结束.这里的i没有被定义,
如果我们在当前的语句块中并在这条语句之前从新定义变量i,并且不定义在当前语句块中的其他语句块内,
那么这条语句就是正确的
*/
for(int j=1;j<5;j++)//这里的j已经被定义过了,所以这条语句也是错误的,根据变量的作用域定义可知这里仍然
//在变量j的作用域中.如果去掉将括号中int j=1改为j=1,就正确了.
{
System.out.println(j);

}

}

}


衍生
public class Demo4
{
/**
age变量属于这个类 叫做成员变量
在这里我们并没有给age赋初始值但因为他是成员变量.编译器在编译时候会根据变量类型赋上初始值.
如果我们想要使用这个变量.可以通过创建对象的方式或者是通过类来静态访问的方式.
*/
int age;
public static void main(String[] agrs)
{
/*
无法从静态上下文中引用非静态变量age
System.out.println(age);错误语句.
*/
//创建出一个对象.并调用对象属性.
Demo4 d=new Demo4();
System.out.println(d.age);
//这里的age是一个局部变量,这里这样定义是正确的.
int age=18;
System.out.println(age);
//对方法进行调用
print();
}
/**
在这里定义了一个方法.
*/
public static void print()
{
Demo4 d=new Demo4();
d.age=20;
System.out.println(d.age)
}
}



public class Demo5
{
/**
编译器在编译的时候会赋上该变量的默认初始值.
*/
static byte b;//初始值0
static int i;//初始值0
static double d;//初始值0.0
static char ch;//初始值/u 0000
static booleam flag;//初始值 flase
public static void mian(String[] agrs)
{
System.out.println(b);
System.out.println(i);
System.out.println(d);
System.out.println(ch);
System.out.println(flag);
}
}


public class Demo6

{
/**
定义一个常量PI为3.14.常量的名字全部大写.
*/
public static final double PI=3.14;
public static void main(String[] agrs)
{
System.out.println(PI);
PI=6.28;//常量无法再次被赋值,所以这条语句是错误的.
}

}

End of second day

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值