面向對象
标识符:凡是可以自己命名的地方都叫标识符,如:类名、方法名、接口名。。。
1.标识符命名的规则:
由26个英文字母大小写,0-9,_或$组成,不遵守会报错。
不可以用数字开头。
不能使用关键字和保留字。
java中严格区分大小写,长度无限制。
标识符不能包含空格。
2.java中命名规范
包名:多单词组成所有的字母都小写:xxxyyyzz
类名、接口名:多单词组成时首单词小写,后面每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写,多单词每个单词用下划线连接:XXX_YYY_ZZ
最好是见名知意,不要总是用a,b,c。
3.变量
java的变量名开辟的内存空间,此空间必须有自己的名字和类型,例int a=1.开辟一个空间,名称为a,类型为整型。变量的作用域在一对{}之间有效。而且肯定有一个初始化值。
public class variable{
public static void main(String[] args){
int myInt = 233;
double myDouble = 3.14;
System.out.println(myInt);
System.out.println(myInt + myDouble);
}
}
我们在这里定义的两个变量仅在此花括号中有效,即作用域在此花括号中。
java中8种基础数据类型
整型:byte,short,int,long。默认为int类型。
浮点型:float,double(默认为双精度)。
字符型:char只能表示一个字符(英文,中文,标点符号,'\t',‘\u1234’等):char a = 'ab'这样会报错,包含了两个字符。需要包含多个字符需要定义字符串str = "ab"。
布尔类型:boolean,只能取true或false,不能取null,也不能取0,1。
class java_type{
public static void main(String[] args){
//byte类型,整型默认值都为0
byte myByte = 100;
System.out.println(myByte);
//short类型
short myShort = 233;
System.out.println(myShort);
//int类型
int myInt = 23333;
System.out.println(myInt);
//long类型,默认值0L
long myLong = 12345678910111213L;
System.out.println(myLong);
//float类型,默认值是 0.0f
float myFloat = 234.5f;
System.out.println(myFloat);
//double类型,默认值是 0.0d
double myDouble = 3.14;
System.out.println(myDouble);
//boolean类型,默认值是 false
boolean myBoolean = true;
System.out.println(myBoolean);
//char类型
char myChar= 'J';
System.out.println(myChar);
}
}
自动类型转换
低 ------------------------------------> 高 byte,short,char—> int —> long—> float —> double
不能对boolean类型进行类型转换;转换过程中可能导致溢出或损失精度。
容量小的数据类型与容量大的数据类型做运算时,容量小的会自动转换为容量大的数据类型。例如int与short相加,结果提升为int类型,两个short类型数据相加结果也会提升到int类型。char类型与整型相加时默认将char转为整形(例如'a'转化为对应ascii码的值97)。
强制类型转换
容量大转换为容量小的,要使用强制类型转换符(),会导致精度损失。
比如将int类型12345转换为byte类型:
int 12345转换为二进制为110000 00111001,byte类型为8位二进制数,会截断110000 00111001取00111001的值,00111001转化为10进制结果为57。
class exchange{
public static void main(String[] args){
int myInt = 12345;
byte myByte = (byte)myInt;
System.out.println(myByte);
char c1='a';//定义一个char类型
int i1 = c1;//char自动类型转换为int
System.out.println("char自动类型转换为int后的值等于"+i1);
char c2 = 'A';//定义一个char类型
int i2 = c2+1;//char 类型和 int 类型计算
System.out.println("char类型和int计算后的值等于"+i2);
}
}
运行结果为:
root@debian:/home/jeff/java_coding/day002# java exchange 57 char自动类型转换为int后的值等于97 char类型和int计算后的值等于66
对于String与基本数据类型之间的运算
首先只可以使用连接运算:+。得到结果仍为一个字符串。
String str = "abc"; String str1 = str + myInt; System.out.println(str1);
结果为:abc12345。
算数
class suanshu{
public static void main(String[] args){
int i1 = 12 % 5;
int i2 = -12 % 5;
int i3 = 12 % (-5);
int i4 = -12 % (-5);
System.out.println(i1);2
System.out.println(i2);-2
System.out.println(i3);2
System.out.println(i4);-2
}
}
可以的出结论,取模的结果与被取模数的符号有关。
class suanshu{
public static void main(String[] args){
//++
//a++,先计算再+1
int int1 = 10;
int int2 = int1++;
System.out.println(int1);11
System.out.println(int2);10
//++a,先+1。再赋值
int int3 = 10;
int int4 = ++int3;
System.out.println(int3);11
System.out.println(int4);11
}
}
其他算数后面用到再解释,与我们一般使用并没有什么分别。
java中的字符类型与字符串类型的差别(单双引号问题)。
在java中单引号中的是字符类型,即char,而双引号中则为字符串类型,即string。
class charString{
public static void main(String[] args){
System.out.println('*' + '\t' + '*');
System.out.println("*" + "\t" + "*");
}
}
单引号相加时为char类型相加,结果会提升为int类型,即将对应的ascii码转化为对应的数值再相加,结果是一个int类型的数值。而双引号相加的结果是字符串的相加,所以结果是一个字符串类型。
输出结果:
root@debian:/home/jeff/java_coding/day002# java charString 93 * *

浙公网安备 33010602011771号