前言:
刚学过C语言再学Java SE感觉还可以,因为一些基础的知识,比如数据类型,变量,运算符,条件和循环都差不多。再往后会有一些不同于C语言的语法,比如 “方法”,“类”,“对象”,“多态”,“接口” 等等。但总体学下来感觉 java 是在C的基础上进行改进的语言,改进了C语言的一些比较麻烦的地方,也继承了C的好的语法。
总的来说,Java是一门易上手的语言,是一门面向对象的语言,也是比较安全的语言(没有C/C++的指针操作)。
1. 数据类型与变量
1. main方法:
Java的main方法主要也是用来运行代码的方法,与C语言的main方法的写法有些不同:
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello,world");
}
}
上面就是Java的“Hello,world”,看起来是比C的main函数复杂一些,主要由三个部分构成:
源文件(xxx.java):一个源文件中包含不同的类,有且只有一个和文件名相同的类。
类:包含一个或多个方法,有且只有一个main方法。
方法:由花括号{}以及里面的语句组成,类似于C语言的函数。
2. 常量
常量就是可以直接打印出来的固定不变的量。
public class Test1{
public static void main(String[] args){
System.Out.println("hello world!");
System.Out.println(10);
System.Out.println(6.18);
System.Out.println('A');
System.Out.println(true);
System.Out.println(false);
}
}
上面的就是一些常见的常量:字符串,整形,浮点数,字符,布尔值等。
3. 变量
变量的初始化也和C语言异曲同工。
public class Test2{
public static void main(String[] args){
int a = 10;
double b = 2.34;
char c = "C";
boolean d = true;
System.Out.println(a);
System.Out.println(d);
System.Out.println(c);
System.Out.println(b);
}
}
除了这些,还有长整型long,短整型short ,以及字节变量byte。
类型的转换也和C语言相同,分为显式转换和隐式转换。
需要注意的是,Java中提供了字符串类型:
public class Test2{
public static void main(String[] args){
String str1 = "hello";
String str2 = "world";
System.Out.println(str1);
System.Out.println(str2);
//整型转字符串
int num = 12345;
String str3 = String.valueOf(num);
//字符串转整型
String str4 = "98765";
int num2 = Integer.parselnt(str4);
}
}
以上就是一些比较常用的Java的数据类型与变量。
2. 运算符
1. 基本运算符
+,-,*,/,% 这些基本的运算与C语言相同,另外还有:
增量运算符 +=,-=,/=,*=,%=
自加自减运算符 ++, --
关系运算符 ==, >, <, !=, >=, <=
逻辑运算符 &&与,||或,! 非
位运算符(重点):
按位与&,二进制中,两个二进制位都是1,则结果为1,否则为0
按位或 |,二进制中,两个二进制位都是0,则结果为0,否则为1
按位取反~,二进制中,二进制位是1,结果为0,反之
按位异或^,二进制中,若一个二进制位是1,另一个是0,则结果为1,若两个二进制位都相同,则结果为0
2. 运算符的优先级
比较典型的是 * 和 / 的优先级高于 + 和 - ,我认为不必记其他的优先级,必要时加上括号即可。
3. 条件分支和循环
1. 条件语句
if 条件:
public class Test3{
public static void main(String[] args){
int score = 89;
if (score > 90){
System.out.println("优秀");
} else if (score > 80){
System.out.println("良好");
} else if(score > 60){
System.out.println("通过");
} else {
System.out.println("不及格");
}
}
}
从上面代码可以看出,Java的if条件语句与C语言相同。
switch 条件:
public class Test4{
public static void main(String[] args){
int day = 1;
//switch 中的判断条件也可以用字符char判断
switch(day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
//........
}
}
}
switch也支持嵌套,但一般不用。
2. 循环语句
和C语言中的循环差不多,分为 while 循环,for 循环 和 do - while 循环。
while 循环:
public class Test4{
public static void main(String[] args){
//计算 5 的阶乘
int i = 1;
int fac = 1;
while (i <= 5){
fac *= i;
i++;
}
System.out.println(fac);
}
}
for 循环:
public class Test6{
public static void main(String[] args){
//计算 5 的阶乘
int fac = 1;
for (int i = 1; i <= 5; i++){
fac *= i;
}
System.out.println(fac);
}
}
其中,break 和 continue 的用法和C语言完全相同,break直接跳出当前循环;continue 不执行下面的语句,回到起始位置继续循环。
do - while 循环:
先执行一次语句,再进入判断,由于不是常用所以就不举例了。
4. 输入和输出
1. 输出
前面代码以及展示很多输出了
System.out.println();
//前面两个词是固定语句,后面的println 表示输出完直接换行,表示换行输出。
System.out.print();
// print 表示不换行输出。
System.out.printf(format, msg);
// 格式化输出,例如:
int x = 10;
System.out.printf("x = %d\n", x)
2. 输入
普通输入:
import java.util.Scanner; // 需要导入util包,一般使用IDEA,直接输出Scanner就自动导入
Scanner sc = new Scanner(System.in);
//基本语法,sc 相当于你命名的输入命令,后面使用 sc.xxx
System.out.println("请输入你的姓名:");
String name = sc.nextLine(); // .nextLine()表示输入一行,多用于字符串
System.out.println("请输入你的年龄:");
int age = sc.nextInt(); // .nextInt()表示输入整型
System.out.println("请输入你的工资:");
float salary = sc.nextFloat(); // 输入浮点数
System.out.println("你的信息如下:");
System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
sc.close(); // 注意, 要记得调用关闭方法
多行输入:
Scanner sc = new Scanner(System.in);
int sum = 0;
int num = 0;
// 循环输入
while (sc.hasNextInt()) {
int tmp = sc.nextInt();
sum += tmp;
num++;
}
System.out.println("sum = " + sum);
System.out.println("avg = " + sum / num);
sc.close();
总结:
从上面的知识点不难看出,Java 的语法和 C语言有异曲同工之妙,因为Java 是在 C 的基础上发展的。接下来的内容可能会与 C语言 有些不同,但整体思想差不多,只是换了形式。