Java的程序代码都必须放入一个类中,而Java用class申明一个类,可以把一个类看作一个Java程序
代码的功能执行语句都是从main函数开始并且每条功能执行语句后都必须以英文的" ; "结束
Java语言和python语言一样严格区分大小写,如 Java 和 java 是两个不同的变量
Java程序编写风格,一共有两种:Allmans风格、Kernighan风格
Allmans风格:
1 package com; 2 3 public class Allmans风格 4 { 5 public static void main(String[]args) 6 { 7 System.out.println("Allmans风格"); 8 } 9 10 }
Kernighan风格:
1 package com; 2 3 public class Kernighan风格 { 4 5 public static void main(String[]args) { 6 7 System.out.println("Kernighan风格"); 8 } 9 10 }
Java程序中一句连续的字符串可以用" + "分写成多行
Java注释分为三种:1、单行注释,符号" // ",如
//输出helloworld
2、多行注释,符号以" /* " 开头," */ " 结尾,如
/*Java严格区分大小写 python也严格区分大小写*/
3、文档注释,符号以" /** "开头," */ "结尾
/** 该程序目的是输出helloworld */
关键字是赋予特殊含义的单词,是一个统称,一共分为8个类别:访问控制、类和方法及变量修饰符、基本类型、程序访问控制、变量引用、包相关、错误处理、保留关键字
类名、对象名、方法名、常量名、变量名统称为标识符,在定义一个标识符时的规则如下:
(1)标识符由一个或多个字母、数字、下画线()和美元符号(S)组成,没有长度限 制,尽量使用有意义的英文单词来定义标识符
(2)一个标识符可以由几个单词连接而成,以表明它的意思
(3)标识符中的第一个字符不能为数字
(4)标识符不能是关键字
(5)标识符不能是tue、false和null
(6)美名的每个单词的首字母都要大写,其他字母则小写,如Student
(7)方法名和变量名除了第一个单词的首字母小写外,其他单词的首字母都要大写,如 studentNames
(8)常量名的每个单词的每个字母都要大写,如果由多个单词组成,通常情况下单词之间用下画线分隔,如MIN_VALUE
(9)包名的每个单词的每个字母都要小写,如cn.itcast.test
常量的值是不允许被改变,使用final关键字声明,一般格式为:final 常量类型 常量标识符 = 常量值
变量顾名思义就是可以被改变的量,不需要用关键字声明,注意第一个单词首字母小写,后面的单词首字母大写,格式为:变量类型 变量标识符
Java语言的数据类型分为基本数据类型和引用数据类型
数值型
整数类型:字节型byte(占用1个字节)取值范围 -128 ~ 127 短整型short(占用2个字节)取值范围 -32768 ~ 32767
整型int(占用4个字节)取值范围 -2147483648 ~ 2147483647 长整型long(占用8个字节) 取值范围太大
浮点型:float(占用4个字节)、double(占用8个字节)
字符型
char(占用2个字节) 可以将char类型变量赋值为0~65535范围内的整数,系统会自动转化成对应字符,如数值97对应字符a
布尔型
boolean(占用1个字节)
类(class)、接口(interface)、数组([ ])
相互转换的情况:
(1)基本数据类型之间的相互转换
(2)字符串与其他数据类型之间的相互转换
(3)引用数据类型之间的相互转换
基本数据类型之间的相互转换
自动类型转换指两种数据类型在转换过程中不需要显示地进行声明,因此又称为隐式类型转换,必须满足两种类型彼此兼容和目标类型的取值范围要大于源类型的取值范围
整数类型之间的转换:byte类型的数据 --->int类型的数据 --->long类型的数据
整数类型转化为float类型:byte ,char ,shrot,int类型的数据可以赋值给float类型的变量
其他类型转换为double类型:byte ,char ,shrot,int,long,float类型的数据可以赋值给double类型的变量
强制类型转换指两种数据类型在转换过程中需要显示地进行声明,所以又称为显示类型转换,在不满足自动类型转换的条件时,需要进行强制类型转换,格式为:目标类型 变量 = (目标类型)值,如
1 package com; 2 3 public class Exampe { 4 5 public static void main(String[]args) { 6 7 int a = 1; 8 byte b = (byte)a; 9 System.out.println(b); 10 } 11 12 }
运算符的使用
与类无关的运算符有算术运算符、赋值运算符、关系运算符、逻辑运算符等
算数运算符:
赋值运算符:
关系运算符:
逻辑运算符:
编写一个学生考试成绩单程序,需要打印出学生名字、相应的语文、数学、计算机考试成绩和每门课课程的平均分
清单图如下:
解决思路:观察清单图,发现可以将清单图分为清单顶部、清单中部、清单底部三部分,清单顶部的" 学生成绩单 "可以直接打印,清单中部的姓名、语文成绩、数学成绩、计算机成绩属于学生的属性,学生姓名为String类型,各科成绩为double类型,清单底部的各科平均分需要计算得出
实现代码:
1 package com; 2 3 public class ScoreList { 4 public static void main(String [] args) { 5 //张三同学成绩 6 String studentName1 = "张三"; 7 double chineseScore1 = 78.5; 8 double mathScore1 = 89.5; 9 double computerScore1 = 73.5; 10 //李四同学成绩 11 String studentName2 = "李四"; 12 double chineseScore2 = 88.5; 13 double mathScore2 = 67.5; 14 double computerScore2 = 93.5; 15 //王五同学成绩 16 String studentName3 = "王五"; 17 double chineseScore3 = 68.5; 18 double mathScore3 = 73.5; 19 double computerScore3 = 86.5; 20 21 //列表顶部 22 System.out.println("----------学生成绩单----------"); 23 System.out.println("姓名 语文成绩 数学成绩 计算机成绩"); 24 25 //列表中部 26 System.out.println(studentName1+" "+chineseScore1+" "+mathScore1+" "+computerScore1); 27 System.out.println(studentName2+" "+chineseScore2+" "+mathScore2+" "+computerScore2); 28 System.out.println(studentName3+" "+chineseScore3+" "+mathScore3+" "+computerScore3); 29 30 //统计各科平均成绩 31 double chineseScoreAvg = (chineseScore1+chineseScore2+chineseScore3); 32 double mathScoreAvg = (mathScore1+mathScore2+mathScore3)/3; 33 double computerScoreAvg = (computerScore1+computerScore2+computerScore3)/3; 34 35 //列表底部 36 System.out.println("---------------------------"); 37 System.out.println("语文平均分:"+chineseScoreAvg); 38 System.out.println("数学平均分:"+mathScoreAvg); 39 System.out.println("计算机平均分:"+computerScoreAvg); 40 41 } 42 43 }
运行结果: