java从入门到精通学习笔记Word格式.docx
- 文档编号:3133577
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:107
- 大小:561.30KB
java从入门到精通学习笔记Word格式.docx
《java从入门到精通学习笔记Word格式.docx》由会员分享,可在线阅读,更多相关《java从入门到精通学习笔记Word格式.docx(107页珍藏版)》请在冰点文库上搜索。
"
);
}
}
Hello,world程序改进,让它成为一个简单的加法运算程序。
//一个主函数,相当于程序的入口
publicstaticvoidmain(Stringargs[])
//执行语句
//System.out.println("
inta=10;
intb=20;
intresult=a+b;
结果是"
+result);
Ø
Java基本数据类型
1.整数型:
可以表示一个整数,常用的整数类型有:
byte,short,int,long;
主要的区别是数据大小的范围:
Byte一个字节-128至127
Short二个字节-32768至32767
Int四个字节-2147483648至2147483647
Long八个字节
范围公式:
-2字节*8-1至2字节*8-1-1
2.浮点型:
可以表示一个小数,常用的浮点型有float,double
区别也是数据大小范围:
3.布尔型:
可以表示真或假
4.字符型:
可以表示单个字符。
字符类型是char,是两个字节,可以存放一个汉字。
多个字符我们称为字符串,在java中string这种数据类型表示。
但是string不是基本数据类型,而是类,类是复合数据类型。
在java中,对char进行运算的时候,直接当做ascii码对应的整数对待。
Inttext1='
a'
+'
b'
;
//结果:
195
chartext1='
B'
+14;
//结果:
P
chartext3='
中'
;
定义变量:
就是定义一个变量:
inta;
初始化变量:
在定义变量的时候就给值。
inta=45;
给变量赋值:
先定义变量,后给变量赋值。
基本数据类型的转换
1.自动转换:
数据类型可以自动从低精度转换为高精度。
inta=1.2;
这样就违背数据从高精度到低精度转换的原则。
编译不通过。
byte<
short<
int<
lng<
float<
double精度由低变高
在java中小数默认为doubule型
所以floata=3.4;
是错误的。
faolat=3.4f;
doubleb=3;
2.强制转换:
inta=(int)1.2;
//结果为1。
intb=(int)1.9;
inta=1;
doubuleb=4.5;
a=b;
//也不能编译
结论:
当一个整数和一个double运算时,运算结果会向高精度转换。
变成double型。
算术运算符
1.+加
2.-减
3.*乘
4./除
5.%取模
6.++自加:
a++;
a=a+1;
b=a++和b=++a的区别:
b=a++;
b=a;
a=a+1;
b=++a;
b=a
7.--自减:
b--;
b=b-1;
8.+=左加
9.-=左减
10./=左除
11.%/=左取模
关系运算符
1.==
2.>
3.<
4.>
=
5.<
6.!
练习:
请编写一个程序,该程序可以接收两个数,既可以是整数,也可以是小数,判断两个数是大于,小于还是等于?
/*
作者:
日期:
功能:
判断两个数是否能整除
*/
importjava.io.*;
publicclasspanduan
try
{
//输入流,从键盘接收数
InputStreamReaderisr=newInputStreamReader(System.in);
BufferedReaderbr=newBufferedReader(isr);
//给出提示
System.out.println("
请输入第一个数"
//从控制台读取一行数
Stringa1=br.readLine();
请输入第二个数"
Stringa2=br.readLine();
//把string转换为float
floatnum1=Float.parseFloat(a1);
floatnum2=Float.parseFloat(a2);
if(num1>
num2){
System.out.println("
第一个数大"
}
if(num1<
第二个数大"
if(num1==num2){
两个数相等"
}
catch(Exceptione)
e.printStackTrace();
逻辑运算符:
用于判断逻辑关系的运算符。
1.&
&
与
2.||或
3.!
非
三大流程控制
1.顺序控制:
听其名而知其意让程序可以顺序执行。
2.分支控制:
单分支,双分支,多分支。
案例:
编写一个程序,可以输入人的年龄,如果该同学的年龄大于18岁,则输出:
“你的年龄大于18,要对自己的行为负责”
单分支:
if(条件表达式){
语句;
双分支:
If(条件表达式){
语句;
}else{
多分支:
}elseif(条件表达式){
}elseif(条件表达式){
Switch(条件表达式){
case常量1:
语句1;
break;
case常量2:
语句2;
case常量3:
语句3;
default:
语句;
break;
注意:
条件表达式数据类型应与case后的常量类型一致。
条件表达式中可以用的数据类型有以下几种:
byte,short,int,char,enum等。
不适合float。
请编写一个程序,改程序可以接收一个字符(a,b,c,d,e…..),a表示星期一,b表示星期二…根据用户输入显示相应的信息,要求使用switch语句。
根据用户输入判断是星期几?
publicclassxingqi
chara1='
switch(a1){
case'
:
System.out.println("
今天是星期一"
break;
今天是星期二"
c'
今天是星期三"
d'
今天是星期四"
e'
今天是星期五"
f'
今天是星期六"
g'
今天是星期天"
default:
输入字符不合法"
}
3.
循环控制语句
1.for循环
for(inti=0;
i<
10000;
i++)
语句;
}
2.while循环
while(循环条件){
语句;
特别说明:
while循环语句是先判断后执行。
3.dowhile循环
do{
//循环体
}while(循环条件)
dowhile循环是先执行后判断。
打印金字塔:
publicclassJinzita
publicstaticvoidmain(String[]args)
intlay=10;
for(inti=1;
=lay;
for(intm=1;
m<
=lay-i;
m++){
System.out.print('
'
for(intj=1;
j<
=i*2-1;
j++)
{
//打印*
*'
//打印换行
System.out.println();
intlay=5;
if(j==1||j==i*2-1){
System.out.print('
}elseif(i==1||i==lay){
}else{
}
for(inti=lay-1;
i>
=1;
i--)
for(intm=1;
Java面向对象编程
创建一个对象,实例化一个对象,把类实例化只是不同的说法而已。
类和对象的区别和联系
1.类是抽象的,概念的,代表一类事物。
比如人类,猫类..
2.对象是具体的,实际的,代表一个具体的事物。
3.类是对象的模板,对象是类的一个个体,实例。
如何定义一个类
定义一个类,类名首字母大写。
一个全面的类定义比较复杂
package包名;
class类名extends父类implements
接口名{
成员变量;
构造方法;
成员方法;
类的成员变量
成员变量是类的组成部分,一般是基本数据类型,也可以是引用类型,
如何创建一个对象
1.先声明再创建
a)对象声明:
类名对象名
b)创建对象:
对象名=new类名();
2.一步到位
类名对象名=new类名();
访问对象属性
对象名.变量名
类的成员方法:
成员方法也叫成员函数,语法:
public返回数据类型方法名(参数列表)
语句;
//方法(函数)主体
参数列表:
标识成员函数输入
数据类型(返回类型):
表示成员函数输出
函数主体:
表示为了实现某一功能的代码块
publicclassPerson
{
Personp1=newPerson();
p1.speak();
p1.jiSuan();
p1.jiSuan(100);
p1.add(100,12);
System.out.println(p1.add1(123,321));
//定义一个类,类名首字母大写。
classCat
intage;
Stringname;
Stringcolor;
classPerson
//成员方法,方法名的首字母一般是小写
publicvoidspeak(){
我是一个好人!
//可以计算
publicvoidjiSuan()
intresult=0;
=1000;
i++){
result+=i;
结果是:
//带参数的成员方法
publicvoidjiSuan(inta)
=a;
publicvoidadd(inta,intb)
和为"
+(a+b));
//计算两个数的和,并返回结果
publicintadd1(intnum1,intnum2){
returnnum1+num2;
成员方法的声明
Publicinttest(inta);
//方法的声明
这句话的作用是声明该方法,声明的格式为:
访问修饰符数据类型函数名(参数列表);
return表达式;
//作用是将表达式的结果返回
构造方法:
构造方法是类的一种特殊的方法,它的主要作用是完成对新对象的初始化,它有几个特点:
1.方法名和类名相同;
2.没有返回值;
3.在创建一个类的新对象时,系统会自动的调用该类的构造方法完成对新对象的初始化。
主要作用
4.在创建新对象时,系统自动调用该类的构造方法;
5.一个类可以有多个构造方法,但不能完全一样;
6.每个类都有一个默认的构造函数。
只是看这个方法是否被覆盖。
publicPerson(intage,Stringname){
age=age;
name=name;
publicPerson(Stringname)
✓一个类可以有多个构造函数
✓如果程序员没有定义构造函数,系统会自动生成一个默认的构造函数。
person(){}
This
java虚拟机会给每个对象分配this,代表当前对象。
✧this不能在类定义的外部使用,只能在类定义的方法中使用。
类变量
类变量是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。
✧如何定义类变量?
语法:
访问修饰符static数据类型变量名;
✧如何访问类变量?
类名.类变量名或者对象名.类变量名
publicclassleiBianLiang
staticinti=1;
static
//该静态区域块只会被执行一次。
i++;
publicleiBianLiang()
leiBianLiangl1=newleiBianLiang();
System.out.println(l1.i);
leiBianLiangl2=newleiBianLiang();
System.out.println(l2.i);
结果输出:
3和4
类方法
✧Java中的原则:
类变量原则上用类方法去访问。
✧类方法是属于所有对象实例的。
✧类方法不能访问非静态变量。
✧形式如下:
访问修饰符static数据返回类型方法名(){}
✧使用:
类名.类方法名或者对象名.类方法名
✧类变量与实例变量的区别
1.加上static称谓类变量或者静态变量,否则称为实例变量。
2.类变量是与类相关的,公共属性。
3.实例变量属于每个对象个体的属性。
4.类变量可以通过类名.类变量名直接访问。
✧类方法小结
1.类方法属于与类相关的,公共的方法。
2.实例方法属于每个对象个体的方法
3.类方法可以通过类名.类方法名直接访问
Java面向对象的四大特征
一、抽象
我们在前面去定义一个类的时候,实际上就是把一类事物的共有属性和行为提取出来,形成一个物理模型(模板),这种研究问题的方法我们称为抽象。
二、封装
封装就是把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有通过被授权的操作(成员方法),才能对数据进行操作。
访问控制修饰符:
a)公开级别:
public修饰,对外公开
b)受保护级别:
用protected修饰,对子类和同一个包中的类公开
c)默认级别:
没有修饰符,向同一个包的类公开。
d)私有级别:
用private修饰,只有类本身可以访问,不对外公开。
◆包-的三大作用:
1.区分相同名字的类
2.当类很多时,可以很好的管理类
3.控制访问范围
◆包-打包命名:
packagecom.xiaoming
◆包-命名规范:
小写打包命令一般放在文件开始
◆包-常用的包:
Java.lang.*包自动引入
Java.util.*工具包
J.*网络开发包
Java.awt.*包窗口工具包
包-如何引入
import包;
比如:
importjava.awt.*
目的:
是要使用该包下的类
三、继承
继承可以解决代码复用,让我们的编程更加靠近人类思维,当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过extends语句来声明继承父类。
class子类extends父类
这样子类就会自动拥有父类定义的某些属性和方法。
◆注意事项:
1.子类最多只能继承一个父类
2.Java所有类都是Obiect类的子类
3.JDK中有202个包3777个类、接口、异常、枚举、注释和错误。
4.在做开发的时候,建议使
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 入门 精通 学习 笔记
![提示](https://static.bingdoc.com/images/bang_tan.gif)