五、第三章java语言基础

一、java主类结构

java语言是面对对象的程序设计语言,java程序的基本组成单元是类,类体中又包括属性与方法两部分。每一个应用程序的必须包括一个main()方法,含有main()方法的类称为主类。

在Eclipse下依次创建项目item,包Number和类Frist。在类体中输入以下代码,实现在控制台上输出“你好 Java”。

五、第三章java语言基础_第1张图片

 二.基本数据类型

整数类型简称整型,用来存储整数数值,即没有小数部分的数值。可以是正数,也可以是负数。整型数据根据它所占内存大小的不同,可分为byte,short,int,long四种类型。

五、第三章java语言基础_第2张图片

 (1)int 型:

int x; //定义int型变量x

int x,y; //同时定义int型变量x,y

int x=10,y=-5; //同时定义int型变量x,y并赋予初值

int x=-5+23; //定义int型变量x,并赋予公式(5+23)计算结果的初值

int型是Java整数值的默认数据类型

(2)Byte型:

byte型定义方式与int相同。定义byte类型变量,代码如下:

byte a;

byte a,b,c;

bute a=19,b=-45;

(3)short型:

short型的定义方式与int相同,定义short类型变量,代码如下:

short s;

short s,t,r;

short s=1000,t=-19;

short s=20000/10;

(4)long型:

由于long型的取值范围比int型大,且属于高精度数据类型,所以在赋值时要和int型做出区分,需要在整数后加L或者l(小写的l),定义long类型变量,代码如下:

long number;

long number,rum;

long number=12345678l,rum=987654321L;

long number=123456789L*987654321L;

2.浮点类型

float型小数需要在后面加F或者f,可以使用d或者D来明确表明这是一个double类型数据,但加不进d或D并没有硬性规定,而定义float型变量时,不加F或f,系统会认为是double类型数据,进而出错,定义浮点类型变量,代码如下:

flato f1=13.23f;

double d1=4562.12d;

double d2=45678.1564;

cf0d3ab1e5db405585df3351b288ed82.jpg 五、第三章java语言基础_第3张图片

 3.字符类型

char型:字符类型(char)用于存储单个字符,占用16个位(两个字节)的内存空间,在定义字符型变量时,要以单引号表示,如's'表示一个字符串,虽然只有一个字符,但由于使用双引号,它仍然表示字符串,而不是字符;五、第三章java语言基础_第4张图片 五、第三章java语言基础_第5张图片

 4.转义字符

转义字符是一种特殊的字 符变量,它以反斜杠“\”开头, 后跟一个或多个字符。转义字符具有特 定的含义,不同于字符原有的 意义,故称“转义”。例如,printf 函数的格式串中用到的“\n”就是一个 转义字符,意思是“回车换行”。

五、第三章java语言基础_第6张图片

 将转义字符赋值给字符变量时,与字符常量值一样需要使用单引号。

“\”字符的转移字符为“\\”,“♡”字符的 Unicode 码为 2764,实例代码如下:

五、第三章java语言基础_第7张图片

 

5.布尔类型

布尔类型又称逻辑类型,简称布尔类型,通过关键字boolean来定义布尔类型变量,布尔类型只有true和false两个值,分别代表布尔逻辑中的“真”和“假”,布尔值不能与整数类型进行转换,布尔类型通常被应在流程控制中,作为判断条件,定义布尔类型变量,代码如下:

boolean b; //定义布尔类型变量b 

boolean b1,b2; //定义布尔类型变量b1,b2 

boolean b=true; //定义布尔类型b的变量,并赋值给true

真:boolean TRUE

假:boolean FALSE

三、变量与常量

1.标识符

标识符可以简单的理解为一个名字,是用来标识类名,变量名,方法名,数组名,文件名的有效字符序列。

Java语音规定标识符由任意顺序的字母,下划线,美元符号,和数字组成,并且第一个字符不能是数字。

下面是合法的标识符:

name

user_age

$page

下面是非法标识符:

4word

String

User name

在Java语言中,标识符中的字母是严格区分大小写的,比如good和Good是两个不同的标识符。

2.关键字

关键字又称保留字,是 Java 语言中已经被赋予特定意义的一些单词,不可以把这些单词作为标识符来使用,int、boolean 等都是关键字。

五、第三章java语言基础_第8张图片

 3.变量

本质:就是代表一个”可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。我们可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。

Java变量是程序中最基本的存储单元。其要素包括变量名、变量类型和作用域。

(1)变量名必须是一个有效的标识符

(2)变量名不可以使用java中的关键字

(3)变量名不能重复

(4)应选择有意义的单词作为变量名

变量分类:五、第三章java语言基础_第9张图片

 局部变量在使用前必须先声明、初始化(赋初值)再使用。

五、第三章java语言基础_第10张图片

五、第三章java语言基础_第11张图片类变量:使用static定义。从属于类,生命周期伴随类始终,从类加载到卸载。如果不自行初始化,与成员变量相同会自动初始化成该类型的默认初始值。 

 

4.常量

在Java语言中,主要是利用关键字final来定义一个常量。常量一旦被初始化后不能再更改其值。

 只能被初始化一次

 书写:常量一般大写字母和下划线:MAX_VALUE

五、第三章java语言基础_第12张图片

 从这个结果可以看到,part类运行后发生了错误,异常日志中记载part类出现编译问题,此编译问题正是常量number被二次赋值。

5.变量的有效范围

由于变量被定义出来后只是暂存在内存中,等到程序执行到某一个点,该变量会被释放掉,也就是说变量有它的生命周期。因此,变量的有效范围是指程序代码能够访问该变量的区域,若超出该区域,则在编译时会出现错误。在程序中,一般会根据变量的“有效范围”将变量分为“成员变量”和“局部变量”。

(1)成员变量

在类体中所声明的变量被称为成员变量,成员变量在整个类中都有效。类的成员变量又可分为两种,即静态变量和实例变量。例如下面这段代码:

class Demo{

         int x= 45;

         static int y= 90

}

其中,x为实例变量,y为静态变量(也称类变量)。如果在成员变量的类型前面加上关键字 stati这样的成员变量称为静态变量。静态变量的有效范围可以跨类,甚至可达到整个应用程序之内。对静态变量,除了能在声明它的类内存取,还能直接以“类名.静态变量”的方式在其他类内使用。

(2)局部变量

在类的方法体中声明的变量(方法内部定义,“{”与“}”之间的代码中声明的变量)称为局部量。局部变量只在当前代码块中有效,也就是只能在“{”与“}”之内使用。

在类的方法中声明的变量,包括方法的参数,都属于局部变量。局部变量只在当前定义的方法有效,不能用于类的其他方法中。局部变量的生命周期取决于方法,当方法被调用时,Java 虚拟机为方法中的局部变量分配内存空间,当该方法的调用结束后,则会释放方法中局部变量占用的内存间,局部变量也将会被销毁。

五、第三章java语言基础_第13张图片

 

四.运算符

运算符是一些特殊符号,主要用于数学函数,一些类型的赋值语句和逻辑比较方面。

1.赋值运算符

赋值运算符以符号“=”表示,它是一个二元运算符(对两个操作数作处理),其功能是将右方操作数所含的值赋给左方的操作数。

使用赋值运算符同时为两个变量赋值,在项目中创建类Eval,在主方法中定义变量,使用赋值运算符为变量赋值。

五、第三章java语言基础_第14张图片

 在java中,可以把赋值运算符连在一起使用。

如:x=y=z=5;

在这个语句中,变量x,y,z都得到同样的值5。但在实际开发中建议开发者分开赋值,这样可以让代码的层次更清晰。

2.算数运算符

java中的算术运算符主要有+(加),-(减),*(乘),/(除),%(求余),它们都是二元运算符。

五、第三章java语言基础_第15张图片

其中,“+”和“-”运算符还可以作为数值的正负符号。

注意:在进行除法运算时,0不能做除数。例如,对于语句“int a = 5/0;”,系统会抛出ArithmeticException异常。

使用算术运算符模拟计算器,创建ArithmeticOperator类,让用户输入两个数字,分别用5种运算符对这两个数字进行计算。

五、第三章java语言基础_第16张图片

 代码中出现的Scanner扫描器可以让程序获得用户在控制台输入的值。

3.自增和自减运算符

自增,自减运算符是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量,自增,自减运算符的作用是使变量的值增1或减1。放在操作元前面的自增,自减运算符,会先将变量的值加1(减1),然后再使该变量参与表达式的运算,放在操作元的自增,自减运算符,会先使变量参与表达式的运算,然后再将该变量加1(减1)。例如:

++a(--a)//表示在使用变量a之前,先使a的值加(减)1

a++(a--)//表示在使用变量a之后,使a的值(减)1

粗略的分析,“++a”与“a++”的作用都相当于a=a+1。假设a=4,则:

b=++a;//先将a的值加1,然后赋给b,此时a值为5,b值为5

再看另一个语法,同样假设a=4,则:

b=a++;//先将a的值赋给b,再将a的值变为5,此时a值为5,b值为4

4.比较运算符

比较运算符是指可以使用下列运算符比较两个值。当用运算符比较两个值时,结果是一个逻辑值,不是 TRUE(成立) 就是 FALSE(不成立)的运算符号。

五、第三章java语言基础_第17张图片

 使用不同的比较运算符判断两个整数的关系,在项目中创建Compare,在主方法中创建整型变量,使用比较运算符对变量进行比较运算,并将运算结果输出。

五、第三章java语言基础_第18张图片

 5.逻辑运算符

返回类型为布尔型的表达式,如比较运算符,可以被组合在一起构成一个更复杂的表达式 这是通过逻辑运算符来实现的,逻辑运算符包括&(&&)(逻辑与),||(逻辑或),!(逻辑非)。逻辑运算符的操作元必须是boolean型数据。在逻辑运算符中,除了“!”是一元运算符,其他都是二元运算符。

五、第三章java语言基础_第19张图片

结果为boolean型的变量或表达式可以通过逻辑运算符组合为逻辑表达式。

五、第三章java语言基础_第20张图片

 

五、第三章java语言基础_第21张图片 五、第三章java语言基础_第22张图片

 

 6.位运算符

位运算符除“按位与”和“按位或”运算符外,其他只能用于处理整数的操作数,包括byte,short,char,int,long等数据类型。

五、第三章java语言基础_第23张图片

五、第三章java语言基础_第24张图片 

五、第三章java语言基础_第25张图片

 7.三元运算符

三元运算符的使用格式为:

条件式 ? 值 1:值2

三元运算符的运算规则为:若条件式的值为true,则整个表达式取值1,否则取值2。例如:

boolean b=20<45? ture:false;

上述程序表达式“20<45”的运算结果返回真,那么boolean型变量b取值为ture。相反,如果表达式的运算结果返回为假,则boolean型变量b取值为false。

五、第三章java语言基础_第26张图片

8.运算符优先级

java中的表达式就是使用运算符连接起来的符合java规则的式子。运算符的优先级决定了表达式中运算执行的先后顺序。通常,优先级由高到低的顺序依次是:

(1)增量和减量运算

(2)算术运算

(3)比较运算

(4)逻辑运算

(5)赋值运算

如果两个运算符有相同的优先级,那么左边的表达式要比右边的表达式先被处理。

五、第三章java语言基础_第27张图片

 五.数据类型转换

类型转换是将一个值从一种类型更改为另一种类型的过程。例如,可以将 String 类型的数据“457”转换为数值型,也可以将任意类型的数据转换为 String 类型。

如果从低精度数据类型向高精度数据类型转换,则永远不不会溢出,并且总是成功的;而把高精度数据类型向低精度数据类型转换时,则会有信息丢失,有可能能失败。

数据类型转换有两种方式,即隐式转换与显式转换。

自动类型转换:一定不会丢失数据

强制类型转换:有可能会丢失数据

五、第三章java语言基础_第28张图片

 

1.隐式类型转换

从低级类型向高级类型的转换,系统将自动执行,程序员无须进行任何操作。这种类型的转换称为隐式转换。下列基本数据类型会涉及数据转换,不包括逻辑类型和字符类型。这些类型按精度从低到高排列的顺序为 :byte

例如,可以将 int 型变量直接赋值给 float 型变量,此时 int 型变量将隐式转换成 float 型变量。代码如下:

int x = 50; //声明 int 型变量 x 

float y = x; //将x赋值给 y,y的值为 50.0 

隐式转换也要遵循一定的规则,来解决在什么情况下将哪种类型的数据转换成另一种类型的数据。

五、第三章java语言基础_第29张图片

 在项目中创建Conver,在主方法中创建不同数值型的变量,实现将各变量隐式转换。

五、第三章java语言基础_第30张图片

2.显式类型转换

当把高精度的变量的值赋给低精度的变量时,必须使用显式类型转换运算(又称强制类型转语法)

例如,将高精度数字转换为低精度数字。代码如下:

int a = (int)45.23; //此时输出a的值为 45 

long y = (long)456.6F; //此时输出y的值为 456 

int b = (int)'d'; //此时输出 b的值为 100 

执行显式类型转换时,可能会导致精度损失。除 boolean 类型外,其他基本类型都能以显式类型转换的方法实现转换。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(java)