java学习的基本语法,java学习基本语法
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
相关文章
- 暂无相关文章
用户点评