欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java学习的基本语法,java学习基本语法

来源: javaer 分享于  点击 2860 次 点评:69

java学习的基本语法,java学习基本语法


---java是什么?

java是sun公司在1995年5月推行的面向对象的设计语言,2010被Oracle公司收购

---java体系:

java EE:企业版 主要是java的网络部分,可以开发网站

java SE:标准版 主要java核心语言,可以开发桌面应用

java ME:微型版 主要是手机应用的开发,安卓

---软件:数据+文档+命令;

软件开发:根据用户的需求,分析建立相应的程序或者系统,满足需求的过程

计算机语言:c c++ c# java php Ruby等面向人类.

---Jdk的环境搭建: [开发软件java语言所需要运行环境]

jdk用于java文档开发的主要工具包.

jre主要是java运行的环境.

安装注意:安装路径最好不要含有中文.

---测试安装是否成功:进入doc窗口执行 :javac

配置环境变量:

path:jdk的安装目录[bin包] 例 D:\Program Files\Java\jdk1.6.0_34\bin

java_home: jdk的安装目录[bin包之前] 例 D:\Program Files\Java\jdk1.6.0_34

classpath: .;%java_home%\lib\dt.jar;%java_home%\lib\tools.jar

---java_home是必须配置的吗? 不是,只是为了方便使用.

---开发java程序:

1.创建文件,将文件名改为 ** .java.

2.在Java文件中编写类:[java文件都是以类的基本结构编写的]

类的编写格式:

public class 类名称{

类体

}

注意:1>.类名必须与文件名相同

2>.其他所有代码放在类体中

3.编写main函数:

public static void main(String[] 参数名){

方法体

}

注意:1>main函数是java程序的执行入口,所编写格式固定的.

2>参数名任意,但是不要太随意,要根据命名规范

3>其他代吗放在方法体中,[输出语句,循环..],该函数写在类体中

4.编写输出语句:

System.out.println("输出语句");

注意:1>该语句写在方法体中

5.执行程序:

1.在doc窗口中执行:javac Java文件名.java

2.执行class文件:java class文件名

---分号,空格和换行:java语言比较自由,所有可以含有多个空格,空行,但是分号表示一条java命令的编写结束

---标识符:类名 方法名 变量名 统称为标识符

要求:

1.标识符只能由字母,数字,下划线,美元符号组成

2.不能以数字开头

3.不是能使用关键字

4.长度不受限,单严格区分大小写

---命名规范:

包名:所有字母小写

类名:每个单词首字母大写

方法名:每个单词首字母小写,之后的每个单词首字母大写.

---注释:

//单行注释

/*

多行注释

*/

/**

文档注释

*/

作用:说明代码的用途和意义,方法代码的维护

---变量:

java程序中有可能存储数据;

变量是java程序中最基本的存储单元,可以存放某一个数据.

---局部变量和全局变量

局部变量:

1>.必须写在方法体中

2>.局部变量只能在当前方法体中被访问

3>.使用前必须赋值

全局变量:

1>.必须编写在所有方法体之外.

2>.可以在任何方法体中被访问

3>.使用前可以不赋值,但java系

统会自动赋予该变量默认值

4>.全局变量的修改影响其他地方对全局变量的访问.

注意:当全局变量和局部变量命名冲突时,java系统访问时,按照就近原则.

---数据类型:

为什么使用数据类型?

java程序中的数据都需要一定的内存,为了节省系统资源,根据数据的不同,分配的空间也不同.

分类:基本数据类型 引用数据类型

基本数据类型:

整数[byte short int long]

小数[float double]

字符[char]

布尔[boolean]

byte取值范围:-128====127

所有的数字数据,在java中没有标注该数据是什么类型时,默认为int类型

数据类型转换:

自动类型转换: 由取值范围小/精度低的数据类型 转为 取值范围大/精度高的数据类型.

强制类型转换: 由取值范围大/精度高的数据类型 转为 取值范围小/精度低的数据类型.

强制类型转换格式:数据类型 变量名=(数据类型)值;

---算术运算符:

%求余:求余数的意思;

格式:变量++ 变量-- ++变量 --变量

当执行:变量++/--时,表示自增/自减1

当执行:变量A=变量B++/-- 时, 表示先赋值再自增/自减1

当执行:++/--变量时,表示自增/自减1

当执行:变量A=++/--变量B 时, 表示先自增/自减1再赋值

---赋值运算符和比较运算符

格式: 变量+=N 等价于 变量=变量+N; 同理 -= /= *= %=

==:java中双等号表示比较是否相等的意思

!=:表示不等号

---逻辑运算符或,且,非

测试"|": 条件A | 条件B,.... 至少有一个为true,整体返回为true

测试"||"[短路或]: 条件A || 条件B,至少有一个条件结果为true,整体返回为true,

但是,当一个条件为true时,将直接返回为true,不在判断之后的条件.

测试"&": 判断所有条件都为true时,整体返回为true

测试"&&": 判断所有条件都为true时,整体为true.但是当一个条件为false时,将直接返回为false.

不在判断之后的内容.

"!" 非: 获得布尔表达式的反面值

---三目运算[三元运算]

格式:条件?代码1:代码2;

原理:当条件为true时,执行代码1,否则执行代码2;

---数组

什么是数组:存放同一类型的多个数据的容器;

数组的下标系统从0开始的

数组类型 [] 数组名=new 数组类型[元素的个数];

存放值得格式:数组名[索引/下标]=值;

取值的格式:数组名[索引];

修改值的格式:数组名[索引]=值[要修改值]

重复对某个个索引设置值,实质是修改,覆盖掉原来的值;

清楚数据格式:数组名[索引]=默认值;

以上方式称为静态初始化,创建数组的时候,只规定了元素的个数.没有赋值,但是java系统赋予了数组初始默认值;

数组类型[] 数组名=new 数组类型[]{元素1,元素2,...};

以上称为动态初始化,创建数组的时候,直接设定了数组的元素初始值.数组的元素写了几

个,就有几个.

数组类型[] 数组名={元素1,元素2,....};

称为直接量语法也称为动态初始化,创建数组的时候,直接设定了数组的元素初始值.

数组的元素写了几个,就有几个.

---扫描器

Scanner sc=new Scanner(System.in);

System.in:表示创建一个工厂,对键盘扫描

转义字符:"\"--->表示取消之前的用法,更新为当前java语法.

---控制语句

java中的控制语句:控制程序的执行流程[执行什么不执行什么].

控制语句:if语句 switch语句

if语句格式:

if(条件){

要执行的代码块

}

原理:当且仅当条件为true时,执行代码块

if(条件){

代码1

}else{

代码2

}

原理:当且仅当条件为true时,执行代码1,否则执行代码2.

if(条件1){

当且仅当条件1为true时,执行此处的代码

}else if(条件2){

当且仅当条件1为false时,并且条件2为true时,执行此处的代码

}else if(条件3){

当且仅当条件1,条件2为false时,并且条件3为true时,执行此处的代码

}

....

else{

当且仅当之前所有条件为false时,执行此处代码

}

总结:所有的if块中,只执行一处代码,[多选一]

switch语句:

格式:

switch(表达式){

case 值1:代码;break;

case 值2:代码;break;

case 值3:代码;break;

......

[default: 代码;break;]

}

原理:计算表达式的值,与case的匹配,如果匹配上以后,执行当前case之后的代码.当表达式的值所有case的值

都不匹配时,执行default之后的代码;

case值得要求:

1.表达式的值与case的类型必须相同

2.case的值只能为整数[long除外],char;

---循环:for while do while forEach

for循环格式:

for(循环初始值;循环条件;控制循环条件){

循环体

}

原理:

先执行"循环初始值",然后判断"循环条件"是否为true,如果为true,就执行循环体.

当循环体执行结束后,执行"控制循环条件",然后再次判断"循环条件"是否为true.如果为true,

就执行循环体,依次类推,直到判断"循环条件"为false时,结束当前for循环的执行

while循环格式:

while(循环条件){

循环体

}

原理:当循环条件为true时,执行循环体,循环体执行结束后,再次判断循环条件为true时,执行循环,

直到判断循环条件为false时,停止循环---->死循环

说明:

相对for循环,while循环条件的改变需要在循环体中编写.

do while循环格式:

do{

循环体

}while(循环条件);

原理:

先执行循环体,然后再判断循环条件是否true,如果为true,再执行循环体.循环体执行结束后,再次

判断循环条件是否为true,如果循环条件为true,再次执行循环体,直到循环条件为false时,结束循环.

while循环,先判断循环条件是否为true,然后执行循环体.while循环体可能一次都不执行

do while循环.先执行循环体,在判断循环条件是否为true.do while循环体至少执行一次

for(变

量类型 变量名: 数组/集合名){

循环体

}

原理:从数组/集合中依次取出元素的值,赋给变量,然后执行循环体,执行结束后,再次从数组/集合中依次取数据...

直到数组/集合中没有数据时停止循环

---转移语句

break:终止当前循环体的执行 格式:break;

continue:终止当前正在执行的代码,直接执行循环控制代码,进入下次循环 格式:continue;

return: 终止当前方法的执行[返回数据] 格式:return;

---java是面向对象的语言.以对象为中心

---现实中的一切事物都可以作为java的对象-----一切皆对象

---将现实的人对象的静态属性作为java对象的属性,将现实对象的动态属性作为java对象的方法/功能

---属性的编写格式:权限 属性类型 属性名=值; 或 权限 属性类型 属性名;

---方法的编写格式:权限 [static/native 等] 返回值类型 方法名([参数类型 参数名,参数类型 参数名,...]){ 方法体 }

---操作方法/属性的格式:对象.方法名(); 对象.属性名;

---方法的分类:

main函数[主函数]格式:

public static void main(String[] 参数名){

方法体

}

作用:main方法作为java程序的执行入口,方法的编写是固定的.

普通函数/方法格式:

权限 [static/native等] 返回值类型 方法名([参数类型 参数名,参数类型 参数名,...]){ 方法体 }

说明:

返回值类型:如果方法没有/不需要返回任何数据时,返回值类型必须编写位"void";

如果方法需要向外部返回数据,返回值类型就为该数据的数据类型.

参数:在Java程序中调用含有参书的方法时,必须按照参数的个数.顺序.类型传递相应的参数值.

方法的调用:

1.直接调用 2.对象调用 3.类名调用

直接调用:被调用的方法必须在同一个类中. 格式:方法名();

注意:main方法是你静态方法[被static修饰],只能调用static修饰的属性和方法.

对象调用:必须先创建对象,然后才能使用对象调用相应的属性/方法.

格式:对象.方法名();

类名调用:被调用的方法必须被static修饰.

格式:类名.方法名();

---关键字static:

1.static用于修饰全局变量和方法,代码块.

2.static修饰的代码都将放在全局数据区.

3.static修饰的方法,只能调用被static修饰的属性/方法.

---构造函数

作用:用于创建对象

格式:

权限 方法名([参数类型 参数名,...]){

方法体

}

注意:

1.当一个java类中没有编写任何形式的构造函数时,系统会自动生成一个无参构造.

2.构造函数没有返回值的声明,也不能使用return返回数据.

3.构造函数方法名的声明必须和类名相同.

构造方法的调用:

1.普通函数不能调用构造函数.

2.构造函数可以调用普通函数.

3.构造函数之间不能相互调用形成死循环,实现调用必须使用关

键字this.

关键字this:

1.this([参数值,..]);解决构造函数之间的相互调用

注意:1.this()只能编写在构造函数中.

2.this()必须在有效代码第一行

3.构造函数之间不能相互调用形成死循环.

2.this.属性;

用于解决全局变量和局部变量/参数命名冲突时,按照"就近原则"处理后无法使用全局变量.

只能使用于非静态方法中.

封装:影藏对象的属性和实现细节

封装的原则:私有属性[将对象的属性设为私有的]共有方法[根据需要提供公共的访问方式].

私有属性:使用权限private修饰 格式:private 属性类型 属性名;

共有方法:提供设置和获得值得方法.[ set/get]

注意:设置和获得属性值得方法,方法名任意[不是必须使用set***/get***].

[通常java语法,及程序员习惯在提供set和get同时,会提供有参和无参构造:用于创建对象时,可能会使用有参构造,

如果没有提供,那么在类相对较多的情况,可能导致找不到相应的类-->浪费时间]

有参构造:在java类中含有属性时,自动生成的构造函数中,会有相应的赋值代码[类同set方法];

但是java程序建议保留源码,当属性过多时,那么使用有参构造时,传参时,可能传输错误.

 java免费直播公开课请加老师QQ578024144

相关文章

    暂无相关文章
相关栏目:

用户点评