理工课件-java基础1-1语言_第1页
理工课件-java基础1-1语言_第2页
理工课件-java基础1-1语言_第3页
理工课件-java基础1-1语言_第4页
理工课件-java基础1-1语言_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JAVA核心技术Java语言基础-变量、数据类型、条件掌握变量的概念会使用常用数据类型int,double,char,String会使用基本运算符赋值运算符,算术运算符会进行数据类型转换掌握关系运算符和逻辑运算符掌握if条件结构使用基本if条件结构使用多重if条件结构本章目标电脑使用内存来记忆计算时所使用的数据内存如何存储数据?内存像旅馆数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空间1、开房间(单人间、双人间、总统套间)2、入住√回顾内存如何存放数据1000*(1+5%)内存10001050变量:一个数据存储空间的表示对于专业程序员,数据存入内存不算完:怎么找到存入的数据?存进去还能改吗?98.76不同数据存入具有不同内存地址的空间,相互独立变量在银行存1000元钱,银行一年的利息5%,那一年之后钱变成了多少?内存地址不好记,怎么办?通过内存中小房间的别名找到数据存储的位置变量是存储数据的一个基本单元房间

房间名字

房间类型

入住的客人变量

变量名

变量类型

变量值为什么需要变量对应变量应用1、在内存中存储本金1000元2、显示内存中存储的数据的值publicclassHello{publicstaticvoidmain(String[]args){

intmoney=1000;//存数据

}}

数据类型

变量名

内存空间存的数值System.out.println(money);//使用数据变量的声明和赋值使用变量的步骤:第一步:声明一个变量第二步:赋值第三步:使用变量数据类型变量名=数值;根据类型开辟空间将数据存入空间取出数据使用数据类型变量名;变量名=数值;intmoney=1000;intmoney;money=1000;数据属于不同类别非洲ThequickbrownfoxTRUE数据非数值数值整型非整型9002.129999/12/20032.175123陈扬char非数值数值整型int…………double非整型StringJava常用数据类型

数据类型数据类型说明char(字符型)用于存储单个字符如:性别‘男’、‘女’,电灯‘开’、‘关’int(整型)用于存储整数如:一天的时间是24小时,一月份有31天double(双精度)用于存储小数如:蒙牛早餐奶的价格1.3元,手机待机时间6.5小时String(字符串)用于存储一串字符如:“我的爱好是踢足球”,“我喜欢Java程序”数据类型说明数据类型的使用输出Java课考试最高分:98.5输出最高分学员姓名:张三输出最高分学员性别:‘男’publicclassHello{publicstaticvoidmain(String[]args){

doublescore=98.5;Stringname="张三";

charsex='男';System.out.println("本次考试成绩最高分:"+score);//输出其他……}}单引号双引号完整代码演示连接输出信息1、字母2、下划线‘_’3、‘$’

符号首字母任意多的:1、数字2、字母3、下划线‘_’4、‘$’符号其余部分变量名Java语言中,变量命名要符合一定规则money,score,name,sex变量命名规范:简短且能清楚地表明变量的作用,通常第一个单词的首字母小写,其后单词的首字母大写。例如:myScore变量命名规则2-1变量命名规则2-2检查下面这些是否是合法的变量名principalcost_pricemarks_3$lastnamecity123ratediscount%zipcodeCityint××××publicclassHello{publicstaticvoidmain(String[]args){Stringtitle;System.out.println(title);}}Stringtitle;//声明变量titletitle="Java";//赋值Stringtitle="Java";//声明变量title并赋值12先声明变量并赋值,然后才能使用常见错误1代码错误正确方案

变量名不能以%开始常见错误2publicclassHello{publicstaticvoidmain(String[]args){int%hour=18;System.out.println(%hour);}}代码错误publicclassHello{publicstaticvoidmain(String[]args){Stringname="张三";Stringname="李四";}}

声明两个同名变量导致编译错误Stringname="张三";StringName="李四";Java程序区分大小写常见错误3正确方案数据类型数据类型用来确定要存储在内存单元中的数据的类型;在Java中,数据类型被区分成两个种类:原始数据类型引用数据类型原始数据类型原始数据类型是最简单的数据形式,与C的基本数据类型很相似:数据类型大小位取值范围说明boolean布尔型1true/false用于存储真值/假值byte

字节型8-128~127数据存储在内存中的最原始形态char

字符型16‘\u0000’~‘\uFFFF’用于存储字符,以Unicode编码方式short短整型16-32768~32767略(参见P20表2.1)int

整型32-231~231-1

略(参见P20表2.1)long长整型64-263~263-1

略(参见P20表2.1)float浮点型32略略(参见P20表2.1)double双精度64略略(参见P20表2.1)引用数据类型在Java中,除了上述8种原始数据类型的变量以外,其余的全都属于引用数据类型,其中包括:数组对象存储在引用类型变量中的值是该变量表示的值的地址;可以借用C语言中指针的概念来理解引用数据类型。Java中的内存分配Java中的原始数据类型与C语言中的基本数据类型一样,其变量都是在栈中分配空间;而除了8种原始数据类型以外,其它的任何数据都不可以在栈中分配,只能到堆中开辟空间,而在堆中分配的空间又只能通过指针访问;通过指针访问堆内存的方式,在Java中被称作引用数据类型;可以认为,Java中的引用就类似于C语言中的指针,只是对指针进行了一定程度上的包装,避免了因直接操作指针而造成的数据意外损坏,从而导致程序错误的情况。标识符命名规则变量、函数、数组、对象、类和接口等等都需要命名,这些名称统称为标识符;Java中对于标识符的命名规则作了如下限制:只能由英文字母、数字、下划线“_”和“$”符号组成;必须以英文字母、“_”或“$”开头,即不能以数字开头;除“_”和“$”以外,不能包含其它任何特殊字符;不能与关键字冲突;严格区分大小写。变量的作用域和生命周期变量的作用域指变量起作用的范围,说明变量在什么部分可以被访问;变量的生命周期是指变量在内存中存在的周期,即什么时候分配空间,什么时候销毁。CJava变量声明程序中所有使用到的变量应该在程序开始部分预先进行声明。可以在程序的任何部分声明,即:何处使用,何处声明。作用域规则变量的作用域属于声明它的函数范围之内,变量的最小作用域是函数。变量的作用域属于声明它的代码块,变量的最小作用域是包含它的一对{}之间。/*有1,2,3,4四个数字,能组成多少个不相同且无重复的三位数?*/public

classScopeVariable{

public

static

voidmain(String[]args){

intcount=0;

for(inti=1;i<=4;i++)//在需要使用变量时声明

{

for(intj=1;j<=4;j++){

for(intk=1;k<=4;k++){

if(i!=j&&i!=k&&j!=k){

inttemp=i*100+j*10+k;System.out.print(temp+"\t");count++;}}}}/*思考:在此处可以访问到变量k吗?*/System.out.println("\n有:"+count+"个符合要求的数");}}作用域示例数据类型转换程序中经常会遇到要将数据类型进行转换的情况(如:在一个表达式中存在不同类型的操作数时),Java的数据类型转换比C控制得更为严格;数据类型转换有两种情况:自动类型转换强制类型转换自动类型转换某班第一次Java考试平均分81.29,第二次比第一次多2分,计算第二次考试平均分?

doublefirstAvg=81.29;//第一次平均分

doublesecondAvg;//第二次平均分

intrise=2;secondAvg=firstAvg+rise;

System.out.println("第二次平均分是:"+secondAvg);完整代码演示在某种条件下,系统自动完成类型转换两种类型兼容例如:int和double兼容目标类型大于源类型例如:double型大于int型对于表达式如果一个操作数为double型,则整个表达式可提升为double型类型提升规则intage=19;charsex=‘女’;

charresult=age+sex;

下面语句正确吗?inta=10;intb=10.2;doublec=10;c=a;intd=c;int不可以自动转换成chardouble不可以自动转化成int常见错误intbefore=20;//apple笔记本市场份额doublerise=9.8;//增长的份额intnow=before+rise;//现在的份额intnow=before+(int)rise;

去年Apple笔记本所占的市场份额是20,今年增长的市场份额是9.8,求今年所占的份额?编译出错:不能完成自动类型转换(类型名)表达式强制类型转换intb=(int)10.2;doublea=10;intc=(int)a;强制类型转换更改为

演示示例:强制类型转换强制类型转换完整代码演示

实现一个数字加密器,加密规则是:加密结果=(整数*10+5)/2+3.14159

加密结果仍为一整数参考代码小结3用什么数据类型能表示一件商品是真货还是假货一个条件成立还是不成立boolean(布尔)类型boolean类型的值:真:true假:falseboolean类型只有这两个值?为什么需要boolean类型1、用boolean类型描述:学员张三的考试成绩是否比学员李四(80分)高如何使用boolean类型intliSi=80;//学员李四成绩booleanisBig;//声明一个boolean类型的变量

Scannerinput=newScanner(System.in);System.out.print("输入学员张三成绩:");//提示要输入学员张三的成绩int

zhangSan=input.nextInt();//输入张三的成绩

isBig=zhangSan>liSi;//将比较结果保存在boolean变量中System.out.println("张三成绩比李四高吗?"+isBig);//输出比较结果存储比较结果条件表达式从控制台接收一个整数完整代码演示比较高低、大小、长短张三的考试成绩是否比李四高大象是否比乌龟更长寿篮球跟地球一样大吗如何比较?使用关系运算符可以比较高低、大小、长短?为什么使用关系运算符什么是关系运算符常用的关系运算符有哪些:>,<==,!=>=,<=大象的寿命<乌龟的寿命真张三的成绩>李四的成绩假令狐冲每次考试成绩>=90分真篮球的大小==地球的大小假由此看出关系运算符的作用:用来做比较运算比较后结果:boolean类型什么是if条件结构if条件结构是根据条件判断之后再做处理if(条件){//语句}if(令狐冲Java成绩>90){

师父奖励令狐冲;}结合问题2基本的if条件结构表达式语句假真如何使用if条件结构6-1

如果令狐冲的Java考试成绩大于90分,师父就奖励他《独孤九剑》剑谱使用if条件结构该如何实现importjava.util.Scanner;publicclassHello{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);System.out.print("输入令狐冲的Java成绩:");intscore=input.nextInt();//令狐冲的Java成绩

if

(score>90){//判断是否大于90分

System.out.println("师父说:不错,给你《独孤九剑》剑谱");}}}演示示例2:使用基本if条件结构如何使用if条件结构6-23、令狐冲Java成绩大于90分,而且音乐成绩大于80分,师父奖励他;或者Java成绩等于100分,音乐成绩大于70分,师父也可以奖励他分析:怎样把多个条件连接起来?使用逻辑运算符运算符表达式说明&&条件1&&

条件2仅仅两个条件同时为真,结果为真||条件1||条件2只要两个条件有一个为真,结果为真!!条件条件为真时,结果为假条件为假时,结果为真问题3的条件如何编写如何使用if条件结构6-3多使用小括号()控制优先级score1>90&&score2>80||score1==100&&score2>70运算符的优先级:最高的优先级:小括号,即()最低的优先级:赋值运算符,即=优先级顺序:!>算术运算符>比较运算符>&&>||publicclassHello{publicstaticvoidmain(String[]args){intscore1=100;//令狐冲的语文成绩

int

score2=72;//令狐冲的历史成绩

if((score1>90&&score2>80)

||(score1==100&&score2>70)){System.out.println("师父说:不错,给你《独孤九剑》剑谱");}}}?如何使用if条件结构6-44、如果令狐冲考试成绩大于90分,师父就奖励他《独孤九剑》,否则师父就罚他上思过崖闭关思过使用两个基本if条件结构使用if-else条件结构实现if(score>90){System.out.println("师父说:不错,给你《独孤九剑》剑谱");}if(score<=90){System.out.println("师父说:不孝徒,上思过崖闭关思过去吧");}如何使用if条件结构6-5

if-else条件结构if(条件){//语句1}else{//语句2}if(令狐冲考试成绩>90){

师父奖励令狐冲;}else{

师父罚他闭关思过;}结合问题4真表达式语句1假语句2使用if-else条件结构解决问题4publicclassHello{publicstaticvoidmain(String[]args){intscore=89;//令狐冲的语文成绩

if(score>90){ System.out.println("师父说:不错,给你《独孤九剑》剑谱");}else{ System.out.println("师父说:不孝徒,上思过崖闭关思过去吧");}}}演示示例4:使用if-else结构如何使用if条件结构6-6小结1说出已学过的数据类型有哪些?int、double、char、boolean、String举例说明已学过的运算符有哪些?赋值运算符、算术运算符、条件运算符、逻辑运算符if和if-else条件结构执行的顺序是什么?if:如果条件表达式成立,执行语句if-else:如果条件表达式成立,执行语句1,如果不成立,执行语句2为什么使用多重if结构5、对学员的结业考试成绩评测成绩>=90:优秀成绩>=80:良好 成绩>=60:中等成绩<60:差使用多重if结构多重if结构就是在else部分中还包含其他if块什么是多重if结构if

(条件){//语句

}

elseif

(条件)

{//语句

}else

{//语句

}可以有多个可以省略多重if结构假真真假表达式1语句1表达式2语句2语句3如何使用多重if结构使用多重if结构解决问题5

int

score=70;//考试成绩

if(score>=90){

System.out.println("优秀");}

elseif(score>=80){

System.out.println("良好");}

elseif(score>=60){

System.out.println("中等");}

else{

System.out.println("差");}大于等于90分大于等于60分,小于80分小于60分大于等于80分,小于90分完整代码演示演示示例5:使用多重if结构为什么使用switch结构6、令狐冲参加比武大会如果获得第一名,将出任武林盟主如果获得第二名,将出任武当掌门如果获得第三名,将出任峨嵋掌门否则,将被逐出师门使用if条件结构如何实现实现代码更好的解决办法:使用switch结构解决switch(表达式){

case

常量1:

语句;

break;

case

常量2:

语句;

break;

default:

语句;}switch结构什么是switch结构计算表达式的值如果等于常量1如果等于常量2如果没有找到匹配的值使用switch结构解决问题6

如何使用switch结构intmingCi=1;switch(mingCi){

case

1:System.out.println("出任武林盟主");

break;

case2:System.out.println("出任武当掌门");

break;

case3:System.out.println("出任峨嵋掌门");

break;

default:System.out.println("被逐出师门");}第一名的情况下第二名的情况下第三名的情况下其他情况下完整代码演示演示示例6:使用switch结构常见错误3-1intmingCi=1;switch(mingCi){

case1:System.out.println("出任武林盟主");

case2:System.out.println("出任武当掌门");

case3:System.out.println("出任峨嵋掌门");

default:System.out.println("被逐出师门");}输出结果是什么?如果需要每个case执行完后跳出,在每个case后不要忘记写break;演示示例7:完整代码常见错误3-2int

mingCi=1;switch(mingCi){

case1:System.out.println("出任武林盟主");

case2:System.out.println("出任武当掌门");

case2:System.out.println("出任峨嵋掌门");

default:System.out.println("被逐出师门");}case后面的常量必须各不相同代码错误常见错误3-3Stringday="星期一";switch(day){

case"星期一":System.out.println("星期一:青菜");

break;

case"星期二":System.out.println("星期二:鱼");

break;……

default:}……switch后面小括号中表达式的值必须是整型或字符型代码错误比较switch和多重if结构相同点不同点switch多重if都可以实现多分支结构只能处理等值的条件判断,且条件是整型变量或字符变量的等值判断处理在else部分还包含其它if结构,特别适合某个变量处于某个区间时的情况短路与和短路或Java提供了两个在其它计算机语言中没有的逻辑运算符

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论