修饰符 class 类名
{
程序代码;
}
1. // 单行注释
2./* */ 多行注释
3./** */ 文档注释(用于创建Web页面的HTML文件,Java的文档生成器能从这类注释中提取信息,并将其规范化后用于建立Web页)
标识符-----名字(类名,函数名,方法名,变量名,属性名......)
定义合法标识符规则:
1. 由26个英文字母大小写,0-9,_或$(java可以,C,python不支持)组成
2.数字不可以开头。
3. 不可以使用关键字和保留字,但能包含关键字和保留字。
4.Java中严格区分大小写,长度无限制。
5.标识符不能包含空格。
Java中的命名规范:
包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写: xxxYyylzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ 变量---(用关键字final修饰的变量)
关键字与保留字:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
注:关键字中所有字母都为小写
Java关键字官网查询:
Java 语言关键字(学习 Java™ 语言>语言基础知识> Java 教程) (oracle.com)Java Language Keywords (The Java™ Tutorials > Learning the Java Language > Language Basics) (oracle.com)
Java 变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域。
语法格式:
变量类型 变量名=变量值;(使用变量前必须对变量赋值,首次对变量赋值称为变量初始化,可以声明的同时进行赋值。变量初始化后可以对变量进行重新赋值,重新赋值后,心得值将会覆盖原来的值。
2.2.2 变量的使用----通过变量名
注意:
当有汉字报错时,可以检查一下编码,将编码格式改为:ANSI
注:(使用变量的注意点)
Java中量必须先声明,后使用(与C相同)
使用变量名来访问这块区域的数据
变量的作用域:其定义所在的一对{}内变量(局部变量)只有在其作用域内才有效
同一个作用域内,不能定义重名的变量
Java变量类型分成基本数据类型和引用数据类型
注:
(1)默认情况下整数字面值是int型,如果要指定long型的整数字面值,必须在数值后面加大写或者小写字母L
(2)默认情况下浮点型字面值的double型。要指定为float型需要在浮点数后面加后缀f或者F。
引用类型指向一个对象,不是原始值,指向对象的变量是引用变量。在Java里面除去基本数据类型的其他数据类型都是引用数据类型,自己定义的class类都是引用数据类型。应用数据类型包括 类引用;接口引用;数组引用
声明引用变量格式:
Object object = null //声明一个Object 类的引用变量
List list = null //声明一个List 接口的引用变量
int[] months = null //声明一个int 型数组的引用变量
(将引用数据类型的常量或者变量初始化为null时,表示引用数据类型的常量或变量不引用任何对象。)
Java 是强类型语言,在进行赋值操作时要对数据类型进行检查。
在基本数据类型中,除了boolean类型外均可参与算术运算。
byte----short----char----int----long----flaot----double
在执行强制类型转换时,可能会导致数据溢出或者精度降低。
语法格式:
(数据类型) 数据 或者 (数据类型)(表达式)
eg:
int a=(int)105L //105L 是长整型,赋值给int a 时需要强制转换类型
(1).局部变量:方法或语句内部定义的。只在该方法或语句的内部起作用
(2).成员变量:方法外部,类的内部定义的变量。(与C中全局变量相似)
区别:
成员变量可以有修饰符,而局部变量不能有修饰符。
系统会自动给成员变量默认值,但局部变量没有默认值。
算术运算符;赋值运算符;关系运算符;逻辑运算符;位运算符
+----加法 - ----减法 * ----乘法 / ----除法 % ----求余 ++ ---自增(+1) -- ----自减(-1)
注:
(1).求余
% ---两边的操作数必须是整型
c = a%b (当a,b均为正数时,c为正数 当a,b均为负数时,c为负数)
操作数一正一负时 c = a - a/b*b
c = 15 - [(-3)*(-4)] = 3 c = -15 - [(-3)*4] = -3
(2).自增自减(单目运算---一个操作数)
注意操作数 和操作符的位置
c = (-15+1)*4 = -14*4 = -56 c = (-15)*4 = -60;
a = -15 + 1 = -14
赋值运算符的符号为 “=”,作用是将数据,变量,对象赋值给相应类型的变量。(等号右边的赋值给等号左边的)
复合赋值运算符: -=(a-=b---a=a-b) +=(a+=b---a=a+b) *=---(a*=b---a=a*b) /=---(a/=b---a=a/b)
%=---(a%=b----a=a%b)
用于比较大小,其结果为布尔类型及true 或者false
> ---大于 < ---小于 == ----比较等(比较两边的操作数是否相等,与=不同,=是赋值)
!= ---不等于 >= ---大于或者等于 <= --- 小于或者等于
用于对boolean类型结果的表达式进行运算
(1).逻辑位运算符
| ----按位或 & ----按位与 ~ ----按位取反 ^ ----按位异或
(2).移位运算符
<< ----左移位(a << 1,相当于a*2)
>> ----右移位(a>>1,相当于a除以2)
>>> ---无符号右移,空位用0补齐
(1).字符串连接运算符“+”
(2).三目运算符
X ? Y : Z ; (X的值为true,Y的值为表达式的值,否则Z的值为表达式的值)
比较a,b的大小输出最大值 比较a,b的大小输出最小值
(1).简单的if条件语句
if(条件表达式){
语句;
}
如果条件表达式为真,就执行语句,为假就不执行该语句
(2).if-else条件语句
if(条件表达式){
语句1;
}else{
语句2;
}
如果条件表达式为真,就执行语句1,如果为假,就执行语句2
eg: 判断是奇数还是偶数
(3).if...else if 多分支语句
if(条件表达式1){
语句1;
}
else if(条件表达式2){
语句2;
}
else{
语句3;
}
用于针对某件事的多种情况进行处理,如果满足某种条件,就进行某种处理,否则如果满足另一种条件才执行另一种处理
(4).嵌套if语句
用于复杂的分支语句中
if(表达式1){
if(表达式2){
语句1;
}else{
语句2;
}
}else{
if(表达式3){
语句3;
}else{
语句4;
}
}
switch(表达式1){
case 常量表达式 1: 语句序列1;break;
case 常量表达式 2: 语句序列2;break;
case 常量表达式 3: 语句序列3;break;
case 常量表达式 4: 语句序列4;break;
..........
case 常量表达式 n: 语句序列n;break;
default:语句n+1;
}
说明:
1.switch 语句中表达式的值必须是整型或字符型,switch会根据表达式的值执行符合常量表达式的语句
2.在case后的各常量表达式值不能相同,否则会报错
3.在case后允许有多个语句,可以不用“{}”括起来。也可以用“{}”
4.default的顺序不一定要在最后,只是把它放在最后是一个编程习惯
5.break,是用来跳出switch语句的,若没有break语句,将执行符合常量表达式后面的所有语句。
eg:
输入百分之成绩,输出成绩等级90~100为A,80~90为B,70~~80为C,60~70为D,60以下为E
package chap01;
import java.util.Scanner;
public class hellow {
public static void main(String[] args){
char cGrade;
int num;
Scanner in=new Scanner(System.in);
System.out.println("请输成绩:");
num = in.nextInt();
switch(num/10) {
case 10:cGrade='A';break;
case 9:cGrade='A';break;
case 8:cGrade='B';break;
case 7:cGrade='C';break;
case 6:cGrade='D';break;
default:cGrade='E';
}
System.out.println("你的成绩为:"+num+"\t"+"你的等级为"+cGrade);
}
}
while(表达式){
循环语句;
}
表达式为true,将会执行循环语句,直到表达式为false,才会退出循环
eg:打印1~5
package chap01;
import java.util.Scanner;
public class hellow {
public static void main(String[] args){
int num=1;
while(num <= 5) {
System.out.println("counter="+num);
num++;
}
}
}
do{
循环语句;
}while(表达式);
限制性循环语句,在判断表达式
for(表达式1--初始化 ;表达式2--条件;表达式3--迭代){
循环体;
}
eg: 求1-100的偶数和
package chap01;
public class hellow {
public static void main(String[] args){
int sum=0;
for(int i=0;i<=100;i+=2) {
sum+=i;
}
System.out.println("sum="+sum);
}
}
打印九九乘法表
package chap01;
public class hellow {
public static void main(String[] args){
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++) {
System.out.print(i+" * "+j+"="+i*j+" ");
}
System.out.println();
}
}
}
break可以用于终止循环或其他控制语句。在for,while,do-while中用于强行终止循环。在多分支中也是用。
在for,while,do-while中用于跳出本次循环,进入下一循环。
(1).数组的声明和创建
声明语法有两种:
数组元素类型 数组名[] 或者 数组元素类型 [] 数组名
int a [ ]; //声明一个引用 int 型数组的变量a
String [ ]s; //声明一个引用String型数组的变量s
注:
声明数组后,并没有在内存中为数组分配存储空间。只用使用关键字new创建数组后,数组才拥有一片连续的内存单元。
创建数组的格式:
变量名 = new 数据类型[长度]; (变量名必须是已声明过的数组引用变量,长度指定了数组元素的个数)
可以声明的同时创建数组:
int [ ] a = new int[5];
(2).数组的初始化
int[ ] a={1,2,3}
也可以在声明和创建时同时初始化 int [ ] a = new int[ ]{1,2,3}
eg: 对数组赋值,并输出
package chap01;
import java.util.Scanner;
public class hellow {
public static void main(String[] args){
int a[]= new int[5];
int b;
Scanner sc = new Scanner(System.in);
for(int i=0;i<=4;i++) {
System.out.println("请输入一个数:");
b=sc.nextInt();
a[i]=b;
}
for(int i=a.length-1;i>=0;i--) {
System.out.println("a["+i+"]"+a[i]);
}
}
}
数组元素类型 数组名[] [] 或者 数组元素类型 [] [] 数组
int table[ ][ ]; 声明的同时创建数组:
table = new int[2][3]; int a[ ][ ] = new int[2][3] //创建一个两行三列的二维数组
注: 在初始化二维数组时可以只指定行数而不给出数列的列数。不能只指定列数不指定行数
在引用二维数组中的元素时必须指定两个下标指出是第几行第几列