06_Java筑基之基础语法

06_Java筑基之基础语法

一. 标识符

1. 什么是标识符

Java对包、类、方法、参数和变量等要素命名时使用的字符串称为标识符.

2. 标识符的命名规则

①. 由字母(含英、中、日、俄等)、数字、下划线(_)和美元符号$($ 音: dollar)组成;

②. 不能以数字开头;

③. 区分大小写;

④. 长度无限制(一般不要超过15个字符);

⑤. 不能是Java中的保留字和关键字.

3. 标识符命名习惯

  • 标识符命名习惯: 见名知意.

  • 变量名/方法名/参数名: 首字母小写,如果多个单词组成,第一个单词首字母小写,剩下的单词首字母大写(驼峰式命名法),例如:xxxYyyZzz.

  • 类名: 单词首字母大写,多个单词组成每个单词首字母大写(帕斯卡命名法),例如:XxxYyyZzz.

  • 包名: 多单词组成时所有字母都小写,例如:xxxyyyzzz.

  • 常量名: 所有字母都大写,多单词时每个单词用下划线连接. 例如:XXX_YYY_ZZZ.

注意:

  1. 类名的首字母要大写,这是Java语言的命名规范之一; 
  2. 写代码一定要遵守代码规范,注重代码的阅读性;
  3. 起名字一定要见明知意,例如,不要写Abc这种名称,DemoTest则可以.

4. 关键字、保留字

关键字: Java中有一些赋予特定的含义,有专门用途的字符串称为关键字(keyword),全部为小写. 

保留字: 没有定义用途,但保留备用,如goto、const等.

注意:

所有的关键字都不需要记忆,在后期的学习中慢慢就会掌握.

二. 常量、变量

1. 常量

也称为数据常量,表示不能改变的数值,是程序运行中固定不变的数据.

2. 变量

变量其实是内存中的一块存储空间,使用变量名来访问这块空间,该区域有自己的名称(变量名)和类型(数据类型). 因此,每一个变量使用前必须要先声明,然后进行 赋值(填充内容),才能使用,变量中存储的数据就是常量.

2.1 变量声明、初始化

变量的使用: 
①. 先声明,再赋值(初始化):
   
   语法:
   数据类型 变量名; 
   变量名 = 变量值; 
   
   举例: int i; 
        i=100;
        i=200; 

②. 声明同时赋值:
   
   语法:
   数据类型 变量名 = 变量值;
   
   举例: int j=20;

上机练习: 

练习1: 银行账户存储1000元,年利率是0.05,计算一年后账户余额?

要求: 使用变量保存数据.

练习2: 使用变量存储数据,实现个人简历信息的输出:
姓名,年龄,工作年限,技术方向、兴趣爱好;

要求: 使用变量保存数据

2.2 变量的分类

①. 按所属的数据类型划分:

   基本类型变量: 持有原始值,比如100,true,'a'等;
   
   引用类型变量: 持有引用值,是某个对象的引用,不是该对象本身.

②. 按被声明的位置划分:

    局部变量: 方法或语句块内部定义的变量;
    
    成员变量: 方法外部、类的内部定义的变量.

2.3 局部变量和成员变量

①. 声明的位置不同:
   局部变量的作用域就是它所在的方法或语句块;
   成员变量的作用域是整个类体。 

②. 是否拥有默认值: 
   成员变量有默认值;
   局部变量没有默认值.

三. 数据类型

Java数据类型可分为两大类:基本数据类型和引用数据类型.

基本数据类型: byte、short、int、long、float(单精度)、double(双精度)、char、boolean.

引用数据类型: 类、接口、数组、枚举(后面讲解)、注解.

1. 基本数据类型

整数型----byte(字节),short(短整型),int(整型),long(长整型);

浮点型----float(单精度浮点型), double(双精度浮点型);

字符型----char

布尔型----boolean

2. 基本数据类型的存储长度

Java中所有的基本数据类型都有固定的存储范围和所占内存空间的大小,而不受具体操作系统的影响,以保证Java 程序的可移植性.

byte: 1个字节,范围 -128 到 127 

short: 2个字节,范围 -32768到 32767 

int: 4个字节 

long: 8个字节

float: 4个字节 -3.40E+38 ~ +3.40E+38 有效位数7-8位 

double: 8个字节 -1.79E+308 ~ +1.79E+308 有效位数15-16位 

char: 2个字节 0-65535 65536个字符 

boolean: 不确定

3. 整数型

Java语言的整型数值默认为int型,如: int i = 3;

要声明long型可以加'l'或'L',如: long l = 3L;

注意:

在数值超过int的表述范围时(2147483647),需要加上l/L对long赋值.

4. 浮点型

float: 单精度浮点数(精度7,8位) 4个字节.

double: 双精度浮点数(精度15,16位) 8个字节. 

Java浮点类型常量有两种表示形式: 

①.十进制数形式,必须含有小数点,如: 3.14 314.0 0.314 

②.科学记数法形式,如:3.14e2 3.14E2 314E2 

Java浮点型常量默认为double型,如要声明一个常量为float型,则需在数字后面加f或F,
如: double d = 3.14; float f = 3.14f; 

注意:

float double存储的数据都是近似值.

5. 字符型

char型数据用来表示通常意义上字符.

char c = 'A'; 
char c2= '好'; 

Java字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示(Unicode是全球语言统一编码).

char c1 = '\u0061';//相当于’a’.

char c2=97;//ASCII美国标准信息交换码,相当于’a’.

Java语言中还允许使用转义字符'\'来将其后的字符转变为其它的含义: char c2 = '\n';

// \ 转义字符 可以将后面的n 转义成为 换行的操作.

System.out.print("i的值= "+i+"\n"); 

System.out.print("y的值 = "+y); 

System.out.print("f的值 = "+f); 

System.out.println("c的值 = "+c); // \t 水平制表符 

System.out.print("99\t98\t97\t96"); 

System.out.print("你好\"你好"); 

System.out.print("你好\\你好");

6. 布尔类型

boolean类型适于逻辑运算,一般用于程序流程控制.

boolean类型数据只允许取值true或false,不可以用0或非0的整数替代true和false.

示例:
boolean b = false; 
boolean c = true;

7. 基本数据类型总结

8. 基本数据类型的转换

①. 基本数据类型之间的转换分为以下两种: 
    A.自动类型转换(隐式类型转换); 
    B.强制类型转换(显示类型转换).

特殊: 
boolean 类型不能转换成任何其它基本数据类型.

②. 自动类型转换: 
定义: 自动类型转换就是不需要我们手动对类型来进行强制转换.

数据类型取值范围小的可以自动转为取值范围大的.

  * byte ---> short--->int--->long--->float --->double;
  
  * char---> int;
  
  * byte,short,char三者在计算时会转换成int类型(了解);
  
  * int整型常量和字符常量在合理范围内可以直接赋值给 byte、short、int、char(了解). 

上机练习1: 
某班第一次Java考试平均分81.29,第二次比第一次多2分,计算第二次考试平均分. 

* 如果一个操作数为double型,则整个表达式可提升为double型. 

上机练习2: 
byte b1=10; 
byte b2=20; 
byte b3=b1+b2; //有问题吗? 

③. 强制类型转换: 
定义: 强制类型转换需要把类型进行手动转换,否则无法正常使用.

数据类型取值范围大的转为取值范围小的,需要加强制转换符,也就是(要转换的数据类型).

long l = 100L; 
int i = (int)l; 

但此时有可能造成精度降低或数据溢出,使用时要小心.

上机练习:
去年Java所占市场份额是20,今年增长的市场份额是9.8,求今年所占份额?

int beforeyear=20; 
int year=(int)(beforeyear+9.8);

四. 运算符和表达式

1. 运算符的分类

1.算术运算符:+ 、 - 、 * 、 / 、 % 、 ++ 、 --

2.赋值运算符:= 、 += 、 -= 、 *= 、 /= 、 %= 

3.关系运算符:> 、 < 、 >= 、 <= 、 == 、 != 

4.逻辑运算符:! 、 & 、 | 、 ^ 、 && 、 || 

5.位运算符:& 、 | 、 ^ 、 ~ 、 >> 、 << 、 >>>(了解) 

6.字符串连接运算符:+ 

7.三目运算符 ?:

2. 算数运算符

上机练习1: 有一个三位数,求十位上的数字 // 123 2 

int a = 123;
int b = a/10%10; // 123/10 12%10 2
int c = a%100/10;

上机练习2: 
int d = 5; System.out.println((d++));// 自身加1

System.out.println((d));// 自身加1 

int e = d++ + 6;
System.out.println(" =e "+ e);// 自身加1 

// -- 放在前面是先自身减一 在参与运算

// 放后面 先参与运算 在自身减一 int f = d-- + 6; System.out.println(" f = "+ f);// 自身加1 

byte z = -128; 
byte w = --z;// ++ 在临界值不会报异常,赋的值是在取值范围内转圈 

System.out.println("w= "+ w);// 自身加1

3. 赋值运算符

int i = 34; //i = i + 45; 

i+=45; 
i-=45; // i = i -45; 
i*=45; 
i/=45; 
i%=45; 

System.out.println("i= "+ i);

上机练习

•要求: 有一个四位数字的会员卡号,使用“/”和“%”运算符分解获得会员卡各个位上的数字,将各个位上
数字求和.

4. 关系运算符

boolean b = 3>=3; // 关系运算符,最终的结果都是boolean类型的 

boolean b2 = 3==2; // == 判断等号两边是否相等,如果相等就是true 

boolean b3 = 3!=2; // != 判断等号两边是否不等,如果不等就是true 

System.out.println(b3);

5. 逻辑运算符

逻辑运算符用于对boolean型数据进行运算,运算结果总是boolean型.

public static void main(String[] args){ //&逻辑与 或 
    System.out.println(true&true); 
    System.out.println(true&false); System.out.println(true|true); 
    System.out.println(true|false); 
    System.out.println(!true); //异或 : 不相同为真,相同为假 
    System.out.println("-------------------"); 
    System.out.println(true^false); 
    System.out.println(true^true); 
    System.out.println(false^false); // && 短路 与 
    System.out.println("***************"); 
    
    int num1=10; 
    int num2=5; 
    boolean b=num1<num2 && num1++>100; //num1<num2 false 
    System.out.println(b); 
    System.out.println(num1); //|| 短路或 boolean 
    b2=num1>num2 || num1++>100; 
    System.out.println(b2); 
    System.out.println(num1); 
}

6. 位运算符(了解)

7. 字符串连接符 +

如果字符串和基本数据类型变量、常量连接以后,结果变成了字符串.

System.out.println("Hello"+"World!"); 
System.out.println("Hello = "+ 5);// 字符串和基本数据类型变量,常量连接以后,都变成了字符串 
System.out.println("Hello = "+ 5+ 8); 
System.out.println(5+"");

8. 三目运算符 ? :

语法:

X ? Y : Z

X为boolean类型表达式,先计算x的值,若为true,整个三目运算的结果为表达式y的值,否则整个运算
结果为表达式z的值.

示例:
//X ? Y : Z 
// 1 X 必须是boolean类型表达式 
// 2 Y Z 必须数据类型保持一致 

int score = 99; 
//boolean falg = score>80; 

String str = score>80? "非常优秀" : "优秀"; 

char c = '男'; 
int i = c=='男'? 5 : (int)(4.0); 
// y 和 z 最好是保持数据类型一致 
// 如果不一致,也必须保证接收的变量能够存储 y和 z的数据类型.

System.out.println(i); // 需求: 大于90输出"非常优秀“,大于等于60”输出及格“,否则小于60输出”下个班见“.

String str2 = score>90?"非常优秀":score>=60?"及格":"下个班见"; 
System.out.println(str2);

9. 运算符的优先级


10. 表达式

表达式: 
符合一定语法规则的运算符和操作数的序列.
    i % 10 
    a = 0 
    a==0 
    5.0 + a 
    (a - b) * c - 4 
    i < 30 && i % 10 != 0 

表达式的值和类型:
* 对表达式中操作数进行运算得到的结果称为表达式的值;
* 表达式的值的数据类型即为表达式的类型;

五. Scanner简单使用

//Scanner的作用: 实现键盘输入数据。 
//Scanner的使用 
//1.先导入Scanner: import java.util.Scanner; 
//2.创建对象: Scanner input=new Scanner(System.in); 
//3.接收键盘录入的数据: import java.util.Scanner; 

public class Demo11{ 
    public static void main(String[] args){ 
    
    Scanner input=new Scanner(System.in); 
    
    //3.1. 接收字符串类型数据next(),遇到空格截断nextLine(); 遇到换行结束.
    //String s=input.next();
    
    String s=input.nextLine(); 
    System.out.println(s); 
   
    //3.2. 接收整型数据 nextInt(); 
    int num=input.nextInt(); 
    System.out.println(num); 
    
    //3.3. 接收浮点数 double d=input.nextDouble(); 
    
      System.out.println(d); 
    } 
}

需求:

从控制台输入学员3门课程成绩(html,java,sql),编写程序实现
(1).Java课和SQL课的分数之差;
(2).3门课的平均分.

import java.util.Scanner; 
//导入Scanner类 public class ScoreStat { 
    public static void main(String[] args) { 
        //创建对象 
        Scanner input = new Scanner(System.in); 
        System.out.print("htmls的成绩是:"); 
        int html = input.nextInt(); //html分数 
        int java = input.nextInt(); 
        int sql = input.nextInt(); 
        
        int diffen; //分数差 double avg; 
        //平均分 
        //省略输出成绩单代码…… diffen = java - sql; 
        //计算Java课和SQL课的成绩差 
        System.out.println("Java和SQL的成绩差:" + diffen); 
        avg = (html + java + sql) / 3; //计算平均分 
        System.out.println("3门课的平均分是: " + avg); 
    } 
}

八. 总结

1. 标识符: 
   给包、类、方法名、变量、参数定义的一个字符序列. 

2. 标识符命名规范: 
   1>只能包括字母、数字、下划线、$
   2>不能以数字开头;
   3>区分大小写;
   4>长度无限制(不要超过15);
   5>不能是java关键字.

3. 标识符命名习惯: 
   1>见名知意;
   2>方法名、变量名、参数名首字母小写,后面首字母大写,驼峰式命名法;
   3>类名采用首字母大写,帕斯卡命名法.

4. 关键字和保留字:
 public class static void 等

5. 常量和变量 
   常量: 固定的数据; 
   整型常量: 10,20 
   浮点常量: 3.14 
   字符常量: 'a' 
   布尔常量: true false 
   字符串常量: "xxxx","hello world" 
   null常量.
   
   变量: 本质就是内存中一块存储空间.
   变量名,变量的名字;
   变量值,变量中存储的数据;
    变量类型;
     使用变量: 
   1>先声明,再赋值: 
   int num; 
   num=20; 
   
   2>声明的同时赋值:
   int num2=20; 
   
   变量分类:
   ①.按照类型分: 基本数据类型变量和引用类型变量;
   ②.按照声明的位置分: 局部变量和成员变量;

6. 数据类型,两大类: 基本数据类型和引用数据类型.

基本数据类型: 
byte short int long float double char boolean 

引用类型: 类 String 、数组 、接口、枚举等.

类型取值范围:
byte : 1个字节 -128-127 short :2 -32768-32767 
int :4 long :8
float:4 double :8 
char :2 0-65535 
boolean :不确定 

基本数据类型之间的转换:
1>自动类型转换: 
  表示范围小的转成表示范围大的 byte--->short---->int---->long --->float--->double char--->int 

byte short char 运算是转成int 

int常量和字符常量在合理的范围之内可赋值给byte short int char. 

2>强制类型转换: 表示范围大的转成表示范围小的.

7. 运算符算术运算符: 
   + - * / % ++ --

赋值运算符: = += -= *= /= %= 关系运算符: == != > < >= <= 逻辑运算符: & | ! ^ && || 
位运算符: & | ~ ^ >> << >>>(了解) 
字符串连接符: + 
三目运算符: X ?Y :Z 

优先级:

表达式:

8. Scanner的使用.
发布了234 篇原创文章 · 获赞 74 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/syc000666/article/details/102697977