Java的语法与Python进行对比学习
一、对比
运行方式 解释执行(直接运行.py) 编译+解释(.java -> .class -> JVM)
代码组织 模块(.py文件) 类(.class文件) Java中一切皆类,所有代码都必须放在类
变量定义 动态类型 x = 10 静态强类型 int x = 10; 这是最大区别! Java必须先声明类型
二、java的数据类型
| 类型 | 大小 | 取值范围 | 说明 |
|---|---|---|---|
byte | 1字节 | -128 ~ 127 | 小整数 |
short | 2字节 | -32768 ~ 32767 | 短整数 |
int | 4字节 | -2³¹ ~ 2³¹-1 | 最常用的整数类型 |
long | 8字节 | -2⁶³ ~ 2⁶³-1 | 大整数,后缀加L long big = 100L; |
float | 4字节 | 单精度浮点数 | 后缀加f float price = 10.5f; |
double | 8字节 | 双精度浮点数 | 最常用的小数类型 double score = 95.5; |
char | 2字节 | 单个字符 | char grade = 'A';(单引号) |
boolean | 1位 | true/false | boolean isPassed = true; |
String:字符串(双引号)String name = "Alice";数组、自定义类等
代码:(java变量必须声明类型)
package happy.day01;public class t1 {public static void main(String [] args){System.out.println("hello java");String name="yixinggui";byte small=11;short a=22;int b=33;long big=44L;float c=5.5f;double d=6.6;char e='e';boolean f=false;int[] array={11,22,33,22};System.out.println(name + "\t" + a + "\t" + b + "\t" + big + "\t" + c + "\t" + d + "\t" + e + "\t" + f);}
}
三、条件语句
java条件语句与C语言相同:
if(a<33){System.out.println(a+"\n");}else if(a>33){short g=a++;System.out.println(g);}else{System.out.println("a等于33");}三、循环语句
和C语言差不多:
for(int i=0;i<33;i++){int num=b--;System.out.print(num+"\t");}int w=6;while (w>0){System.out.print(w+"\t");w--;}do{System.out.println(w+"\t");w++;}while (w<6);四、方法(类似python中的函数def)
方法必须定义在类里面
public static int add(int a,int b){return a+b;}public static void main(String[] args) {int result=add(5,6);System.out.println(result);}与python的不同点:
方法调用位置错误:
int result=add(5,6);不能直接放在类体中缺少main方法:Java程序需要main方法作为入口点
五、练习
设计学生成绩评定系统:
1、计算平均分
2、根据平均分评定成绩等级
3、打印评定结果
代码:
package happy.day03;public class t03_1_GradeSystem {public static void main(String[] args) {//学生信息String name="yixinggui";int mathscore=98;int englishscore=88;//计算平均分double average=averagescore(mathscore,englishscore);//评定等级String score=evaluate(average);//成绩打印printscore(name,mathscore,englishscore,average,score);}//计算平均分public static double averagescore(int score1,int score2){double finalescore=(score1+score2)/2.0;return finalescore;}//评定等级public static String evaluate(double score){if(score>=90){return "A";}else if(score<90&&score>=80){return "B";}else {return "C";}}//打印成绩public static void printscore(String name,int score1,int score2,double avgscore,String finals){System.out.println("姓名:\t"+name+"\n数学:"+score1+"\n英语:"+score2+"\n平均:"+avgscore+"\n等级:"+finals);}}
