教学目标:
了解Java主类结构
了解Java语言中的基本数据类型 理解Java语言中的常量与变量 掌握Java语言中的运算符的使用 理解Java语言中的数据类型转换
了解Java语言中的代码注释与编写规范
项目1:Java主类结构,通过一个打印输出程序明确Java主类结构。 在控制台中打印“你好Java”字符。 代码如下:
package datatype;
public class ClasssStructure { static String s1=\"你好\";
public static void main(String[] args) { String s2=\"Java\";
System.out.println(s1); System.out.println(s2); } }
明确内容:
1. package datatype; 包 pag中存在类文件T1。 2. public class classstructure 公共类,类头。
3. Java程序由一个或多个独立的类组成,但其中必须有一个公有类(如:
4. 5. 6. 7.
ClasssStructure),而且源代码文件必须与这个公有类的名字相同(如:classstructure.java)。
public static void main(String[] args) 程序入口。每一个应用程序必须包含一个main()方法。 main()方法中的内容称为类体。
static String s1=\"你好\"; 称为全局变量,作用范围在T1类中 String s2=\"Java\"; 局部变量,作用范围在main()方法中。
项目2:基本数据类型
声明主窗体类的对象---调用构造方
数值型
浮点类型 float、double
基本数据类型 字符型
布尔型
项目3:整数类型 如下代码:~ package datatype;
public class IntegerType {
public static void main(String[] args) {
byte mybyte =124; //范围-127~128 8位 short myshort=32624;//范围-32768~32767 16位
int myint=45784624; ////范围-2147483648~4836472147 32位 long mylong=46789451;//范围-9223372036854775808~9223372036854775807
//64位
System.out.println(25);//十进制数 System.out.println(011);//八进制数 System.out.println(0x11);//十六进制数 System.out.println(mybyte); System.out.println(myshort); System.out.println(myint); System.out.println(mylong); } }
明确:
1. 十进制数可直接打印 2. 八进制数以“0”开始
3. 十六进制数以“0X”或“0x”开始 4. 整数类型范围
项目4:浮点类型 float单精度、double双精度 package datatype;
public class CharInteger {
public static void main(String[] args) {
float f1=13.23f; //表示单精度,必须加f double d1=125.625d;//表示双精度 double d2=125.62578; System.out.println(f1); System.out.println(d1); System.out.println(d2); } }
项目5:字符类型 char 类型
package datatype;
public class CharType {
public static void main(String[] args) { char a1='d'; char a2='@'; int p1=97; int p2=45123;
System.out.println(\"d在Unicode编码中的位置:\"+(int)a1); System.out.println(\"@在Unicode编码中的位置:\"+(int)a2); System.out.println(\"Unicode编码中97是:\"+(char)p1); System.out.println(\"Unicode编码中45123是:\"+(char)p2); } }
明确:
1. char类型用于存储单个字符,占用16位两个字节空间。
2. 定义变量时用单引号赋值,如:‘a’。“a”表示一个字符串。 3. 使用(int)变量名 显示某字符在Unicode编码中的位置。 4. 使用 (char)变量名 显示Unicode编码中某个编码内容。
项目6布尔类型 Boolean类型 package datatype;
public class BoolType {
public static void main(String[] args) { boolean b1=true; boolean b2=false;
System.out.println(b1); System.out.println(b2); } }
明确:
1. Java中的布尔数据类型,仅支持ture和false 赋值
项目7变量与常量
1. 标示符:标示符是以字母、下划线(_)、美元符($)开始的一个字符序列,后面可以跟字母、下划线、美元符、数字。 合法标示符:name、user_age、$page 非法标示符:4word、String、int
2. 标识符是大小写敏感的,但没有长度限制。 3. Java关键字是为编译器保留的、具有特定含义的标识符,不能把它用做变量、类或方法的名称。 abstract default if private throw boolean do implements protected throws break double import public transient byte else instanceof return try case extends int short void catch final interface static volatile char finally long super while class float native switch const for new synchronized continue goto package this
项目8:声明变量
int a; 声明变量a,在内存中开辟空间但没有赋值。 char c1='a'; 声明变量c1并赋值。开辟空间并赋值。 如图: Memory
int a
char c1=’a’
项目9:声明常量 package datatype;
public class Constant {
final static float PI=3.1415926F; static int age=23;
public static void main(String[] args) {
final int NUMBER; NUMBER =123; age=0;
System.out.println(\"常量PI=\"+PI);
System.out.println(\"赋值后的number=\"+ NUMBER); System.out.println(\"int类型age=\"+age); } }
明确:常量定义final关键字 项目10 赋值运算符“=” package datatype;
public class AssignmentOperator {
public static void main(String[] args) { int a,b,c; a=15; c=b=a+4;
System.out.println(\"c=\"+c); System.out.println(\"b=\"+b); } }
项目11:算术运算符 +、-、*、/、% package datatype;
public class ArithmeticOperator {
public static void main(String[] args) { int number1=123;
float number2=45.67f;
System.out.println(\"和为:\"+(number1+number2)); System.out.println(\"差为:\"+(number1-number2)); System.out.println(\"积为:\"+(number1*number2)); System.out.println(\"商为:\"+(number1/number2)); System.out.println(\"取余:\"+(7%2)); } }
项目12:自增自减运算符 package datatype;
public class SelfOperator {
public static void main(String args []) {
int a=1; int b=1; int c=1; int d=1;
System.out.println(\"++a=\"+(++a));//先加后输出 System.out.println(\"b++=\"+(b++));//先输出后加
System.out.println(\"--c=\"+(--c));//先减后输出 System.out.println(\"d--=\"+(d--));//先输出后减 } }
项目13比较运算符 >;<;==;>=;<=;!= package datatype;
public class ComparisonOperator {
public static void main(String[] args) { int a=4; int b=5;
System.out.println(\"是否大于:\"+ (a>b)); System.out.println(\"是否小于:\"+ (aSystem.out.println(\"是否大于等于:\"+ (a>=b)); System.out.println(\"是否小于等于:\"+ (a<=b)); System.out.println(\"是否不等于:\"+ (a!=b)); } }
项目14 逻辑运算符 &&;||;!;&;| package datatype;
public class LogicalOperator {
public static void main(String[] args) { int a=2; int b=5;
boolean b1=(a>b)&&(a!=b); boolean b2=(a>b)||(a!=b); // &&和||为短路运算符
//[条件1&&条件] 条件1不成立,则条件2不执行 //[条件1||条件] 条件1成立,则条件2不执行 boolean b3=!(a>b);
System.out.println(b1); System.out.println(b2); System.out.println(b3); } }
public class LogicDemo {
public static void main(String[] args){ int age=68; char sex='男';
// if(sex=='女'&age++>60){//&是非短路元算符,两个条件都执行 // System.out.println(\"请进\"); // }
if(sex=='女'&&age++>60){//&&短路元算符,如果条件1不成立,条件2不执行
System.out.println(\"请进\"); }
//&和|为非短路运算符,在任何情况下,运算符两边的两个条件都执行
}
}
System.out.println (age);
明确:逻辑值之间的运算。 项目15 数据类型转换 package datatype;
public class ImplicitConversion {
public static void main(String[] args) { byte mybyte =127; int myint =150;
float myfloat=13.5f; char mychar=10;
double mydouble=13.555; //隐式转换
System.out.println(\"byte与float类型转换:\"+ (mybyte+myfloat));
System.out.println(\"byte与int类型转换:\"+(mybyte*myint)); System.out.println(\"byte与char类型转换:\"+(mybyte/mychar)); System.out.println(\"double与char类型转换:\"+(mydouble*mychar)); } }
明确:1.数据类型转换是将一个值从一种类型转换到另一个类型的过程。 2. Java语言的数据类型转换分为:隐式类型转换和显示类型转换。 3. 低精度转换为高精度不会产生溢出。 4. 高精度转为低精度有可能失败。 项目16 显示类型转换 package datatype;
public class ExplicitConversion {
public static void main(String[] args) { int a=(int)45.23f; int b=(int)'d';
System.out.println(a); System.out.println(b); } }
明确:1.当把高精度转换为低精度时,需要强制类型转换。 2.数据类型精度由低至高:byte;short;char;int;long;float;double
项目16:三目运算符
条件表达式?表达式1:表达式2
当条件表达式为“true”时,表达式1作为整个表达式的值,否则表达式2作为整个表达式的值。
package datatype; public class Paging {
public static void main(String [] args){ int total=23;//total条数据 int size=10;//每页显示10条 int page=0;//页数
page=total%size==0?total/size:total/size+1; System.out.println(page); } }
项目17:控制台输入
控制台的输入方法有多种,常用的Scanner,我们先学会用,原理暂时不做讲解。 例如:(1)从控制台接收一行字,再原样输出到控制台
(2)从控制台接收一个数,对这个数取平方,再输出
package datatype;
import java.util.Scanner; public class ScaDemo {
public static void main(String[] args){ Scanner sca=new Scanner(System.in);
//sca用于扫描输入文本,读取用户在命令行输入的各种数据类型的数据 String str=sca.nextLine();//从控制台接收一行字 System.out.println(str);
double n=sca.nextDouble();//从控制台接收一个数字 n=Math.pow(n,2);
System.out.println(n); } }
明确:
(1) java.util.Scanner类,是一个用于扫描输入文本的新的实用程序,可是使用该类创建一个对象,例如Scanner sca=new Scanner(System.in);
(2) 例题中的sca读取用户在命令行输入的各种数据类型
next.Byte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShot() (3) 上述方法执行时都会造成堵塞等待用户在命令行输入数据回车确认
项目18:各种进制的输出
package datatype;
public class BinDemo {
public static void main(String[] args){ int i=192;
System.out.println(Integer.toBinaryString(i));//输出二进制 System.out.println(Integer.toHexString(i));//输出16进制 i=0Xf4;//以0X或0x开头的为16进制
System.out.println(i);//16进制数输出时默认转换为10进制 System.out.println(Integer.toHexString(i));//输出16进制 i=072;//以0开头的数据为8进制
System.out.println(i);//输出默认转换为10进制
System.out.println(Integer.toOctalString(i));//输出8进制 } }
项目19 : 左移( << )和右移(>>)
package datatype;
public class Move {
public static void main(String[] args) { System.out.println(5<<2);//运行结果是20
System.out.println(5>>2);//运行结果是1 } }
程序是怎样执行的呢?
1.左移( << ):首先会将5转为2进制表示形式(java中,整数默认就是int类型,也就是32位):
0000 0000 0000 0000 0000 0000 0000 0101 然后左移2位后,低位补0: 0000 0000 0000 0000 0000 0000 0001 0100 换算成10进制为20
2、右移( >> ) ,右移同理,只是方向不一样罢了(感觉和没说一样) System.out.println(5>>2);//运行结果是1 还是先将5转为2进制表示形式:
0000 0000 0000 0000 0000 0000 0000 0101 然后右移2位,高位补0: 0000 0000 0000 0000 0000 0000 0000 0001
项目20: 无符号右移( >>> )
我们知道在Java中int类型占32位,可以表示一个正数,也可以表示一个负数。正数换算成二进制后的最高位为0,负数的二进制最高为为1 例如 :-5进行无符号右移3位:
package datatype;
public class UnsignedRightShift {
public static void main(String[] args) { System.out.println(-5>>>3);//结果是536870911 } }
我们来看看它的移位过程(可以通过其结果换算成二进制进行对比):
-5换算成二进制: 1111 1111 1111 1111 1111 1111 1111 1011 -5无符号右移3位后的结果 536870911 换算成二进制:
0001 1111 1111 1111 1111 1111 1111 1111 // (用0进行补位)
因篇幅问题不能全部显示,请点此查看更多更全内容