java从入门到精通韩顺平视频笔记整理.docx

上传人:b****8 文档编号:30647734 上传时间:2023-08-18 格式:DOCX 页数:195 大小:139.14KB
下载 相关 举报
java从入门到精通韩顺平视频笔记整理.docx_第1页
第1页 / 共195页
java从入门到精通韩顺平视频笔记整理.docx_第2页
第2页 / 共195页
java从入门到精通韩顺平视频笔记整理.docx_第3页
第3页 / 共195页
java从入门到精通韩顺平视频笔记整理.docx_第4页
第4页 / 共195页
java从入门到精通韩顺平视频笔记整理.docx_第5页
第5页 / 共195页
点击查看更多>>
下载资源
资源描述

java从入门到精通韩顺平视频笔记整理.docx

《java从入门到精通韩顺平视频笔记整理.docx》由会员分享,可在线阅读,更多相关《java从入门到精通韩顺平视频笔记整理.docx(195页珍藏版)》请在冰豆网上搜索。

java从入门到精通韩顺平视频笔记整理.docx

java从入门到精通韩顺平视频笔记整理

Java从入门到精通笔记

第0讲开山篇

1.JavaseJ2se桌面

JavaeeJ2ee网络

JavameJ2me手机

2.SQLserverMysqlOracle

3.学习软件编程的注意事项

1.高效愉快学习

2.先建立一个整体框架然后细节

3.用什么再学习什么

4.先知道how,再知道why

5.软件编程是一门“做中学”学科,做了才会

6.适当囫囵吞枣

7.琢磨别人怎么做,不是我认为这么做

第1讲内容介绍.项目演示.原理剖析

1.课程包括:

java面向对象编程,java图形界面,java数据库编程,java文件i/o流,java网络编程,java的多线程

2.Java历史:

1990sun启动绿色计划

1992创建oak语言—>java

1994gosling参加硅谷大会演示java功能震惊世界

1995sun正式发布java第一个版本,目前最新的是jdk7.0

3.java开发工具:

记事本,jcreator,jbuilder,netbean,eclipse

4.jdk包括:

jre(java运行环境)

java的工具:

编译器javac.exe解释执行器java.exe

java的类库:

3600多个,常用的150多个

5.第一个程序:

//功能:

显示“HelloWorld”

//public:

表示类是公共的,一个文件中只有一个public类

//class:

表示这个是一个类

//HelloWorld:

类名(公共类的类名,必须和文件名一样)

publicclassHelloWorld

{

//一个主函数,程序的入口

publicstaticvoidmain(Stringargs[])

{

//执行语句

System.out.println("helloWorld!

");

}

}

6.Java源程序(.java文件)——>java字节码文件(.class文件)——>由解释执行器(java.exe)将字节码文件加载到java虚拟机(jvm)——>字节码文件(.class)就会在java虚拟机中执行

第2讲变量.数据类型

1.在java里面int占4个字节,long占8个字节

2.Java基本数据类型:

整数:

(byte一个字节:

-128---127int四个字节:

-2147483648---+2147483647

short两个字节:

-32768---+32767long八个字节:

小数(浮点):

floatdouble

布尔:

boolean

字符:

char(两个字节,可以存放汉字,chartest1='中';)引申到字符串(类)

3.在java中对char进行运算的时候,直接是当做ASCII码对应的整数

4.数据不能从高精度到低精度的转换Byte

floata=3.4;是过不去的,在java中小数默认是double(双精度)的

应该写成是floata=3.4f;

不过可以强制转换:

inta=(int)1.2;intb=(int)1.9

5.inta=1;intb=a+1.2;a先是往高精度转换,然后赋给b,就报错改成inta=1;doubleb=a+1.2;或者inta=1;floatb=a+1.2f;就解决了

第4讲流程控制

1.switchcase语句中,switch条件表达式的数据类型应该和后面case的类型一致

2.switchcase语句中,可用的数据类型主要是:

byteshortintcharenum

3.当型循环:

for和while循环

4.直到型循环:

dowhile循环

第5讲类与对象

1.面向对象编程-类与对象

类名首字母大写

类里面的元素叫类的成员变量/属性

2.类的定义

package包名;

class类名extends父类implements

接口名

{

成员变量;

构造方法;

成员方法;

}

3.如何创建对象:

先声明再创建Catcat1;cat1=newCat();

一步到位Catcat1=newCat();

4.引用传递类似于指针一样

第6讲成员属性成员方法

1.对象总是在内存中的

2.类成员方法:

方法就是指某些行为,表示为函数

public返回数据类型方法名(参数列表)

{

语句;//方法(函数)主题

}

3.类名首字母大写方法名首字母小写驼峰法(匈牙利法)下划线法

4.指针是存储地址的,不因为它的指向的数据的类型而改变大小。

第7讲成员方法(函数)构造方法

1.类的成员方法声明

访问修饰符数据类型函数名(参数列表);

2.方法的参数列表是多个的,参数列表的数据类型是任意的

3.在调用某个成员方法的时候给出的具体数值的个数和类型要相匹配

4.方法可以没有返回值

5.先设计类,然后根据类创建对象

6.构造方法(构造函数):

完成对新对象的初始化:

方法名和类名相同

没有返回值

在创建一个类的新对象时,系统会自动调用该类的构造方法完成对新对象的初始化

一个类可以定义多个不同的构造方法

每个类都有一个默认的构造方法

第8讲this类变量

1.this属于类的对象的而不是属于类的

2.5this不能在类的外部使用,只能在类定义时候使用!

3.可以用类名直接访问静态变量

第9讲类方法封装

1.类变量是该类的所有对象共享的对象,一改全改了

2.定义语法:

访问修饰符static数据类型变量名

3.publicclassDemo9

{

staticinti=1;

static

{

System.out.println("zhixingyicile");

i++;

}//会自动执行一次,也只有一次

publicDemo9()

{

System.out.println("ffffffff");

i++;

}

publicstaticvoidmain(Stringargs[])

{

Demo9t1=newDemo9();

System.out.println(Demo9.i);

Demo9t2=newDemo9();

System.out.println(i);

}

}

4.类方法(静态方法、静态函数):

属于所有对象实例的

5.Java中:

类变量(static)原则上用类方法(static)去访问;类方法中不能访问非静态变量

,就是非类变量,但是普通的成员方法可以访问静态变量(类变量)

使用:

类名.类方法名对象名.类方法名

6.非类变量就是实例变量,属于每个对象自己的

7.Java面向对象编程的三(四)大特征:

封装、继承、多态(、抽象)

8.抽象:

把一类事物的共有的属性和行为提取出来,形成一个物理模板,此研究问题的方法就是抽象

9.封装:

把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。

10.封装的访问控制修饰符

11.四种访问控制符:

公开级别:

public

受保护级别:

对子类和同一个包中的类公开

默认级别:

没有修饰符,向同一个包的类公开,子类不可以访问类中默认级别的元素的

私有级别:

用private修饰,只有类本身才能访问

公开>受保护>默认>私有

12.

13.包的三大作用:

区分相同名字的类当类很多的时候可以很好的管理类控制访问范围

14.包的打包命令:

packagecom.xiaoming一般放在文件的开始的地方

15.引包命令:

improt包名

第10讲访问修饰符重载覆盖

1.一个文家中如果只有public类,那么这个public类可以不用主函数

2.不想被继承就设为protected

3.子类最多只能继承一个父类,Java里面不允许一个子类继承多个父类,C++却可以,如Java中一定要呢,就用接口吧

4.Java的所有类都是Object的子类,继承层次数没有限制

5.JDK6.0里面有202个包,3777个类、接口、异常、枚举、注释和错误

6.在做开发的时候多使用JDK帮助文档

7.方法重载:

类的同一种功能的多种实现方式,取决于调用者传递的参数

8.方法重载注意事项:

方法名相同

方法的参数类型,个数,顺序至少有一项不同

方法的修饰符可以不同

方法的返回类型可以不同

另外:

只是返回类型不一样并不构成重载

只是控制访问修饰符不一样不构成重载

第11讲约瑟夫问题(丢手帕问题)

1.方法覆盖的:

子类有一个方法和父类的某个方法名称、返回类型、参数一样

2.方法覆盖注意:

子类的方法的返回类型、参数、方法名称要和父类的一样,否则编译出错

子类方法不能缩小父类方法的访问权限,但是扩大是可以的

3.丢手帕问题:

第十二讲多态

1.多态性:

访问子类可以通过访问父类:

Animalcat=newCat();

Animaldog=newDog();

2.在使用多态的时候,如果有使用覆盖函数,那么被覆盖的方法(即是父类中的的那个相应的方法)是要存在的。

3.多态:

一个引用(类型)在不同情况下的多种状态,可使代码更加灵活

4.java允许父类的引用变量引用它子类的实例,是自动完成的

代码:

packagecom.agui;

publicclassDemo5{

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

Dog2ddd=newDog2();

ddd.cry();

Cat2ccc=newCat2();

ccc.cry();

Animal2an=newCat2();

an.cry();

Masterxxx=newMaster();

xxx.feed(newDog2(),newBone());

}

}

//动物类

classAnimal2

{

Stringname;

intage;

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

publicintgetAge(){

returnage;

}

publicvoidsetAge(intage){

this.age=age;

}

//叫

publicvoidcry()

{

System.out.println("buxiaodezenmejiao");

}

publicvoideat()

{

System.out.println("buzhidaochishenme");

}

}

classMaster

{

//使用多态,方法就可以用一个了

publicvoidfeed(Animal2an,Foodf)

{

an.eat();

f.showName();

}

}

classFood

{

Stringname;

publicvoidshowName()

{

}

}

classFishextendsFood

{

publicvoidshowName()

{

System.out.println("yurou");

}

}

classBoneextendsFood

{

publicvoidshowName()

{

System.out.println("gutou");

}

}

classCat2extendsAnimal2

{

//猫自己叫

publicvoidcry()

{

System.out.println("maomaojiao");

}

publicvoideat()

{

System.out.println("aichiyu");

}

}

classDog2extendsAnimal2

{

//gou自己叫

publicvoidcry()

{

System.out.println("wangwangjiao");

}

publicvoideat()

{

System.out.println("aichigutou");

}

}

第十三讲抽象类接口(难点重点)

1.父类方法的不确定性,用抽象类修饰这个方法,abstract。

2.抽象类还是可以一样被继承

3.当一个类继承的类是抽象的类时候,就要把抽象类中的所有的抽象方法全部方法实现

4.用abstract关键词来修饰的时候,一定是抽象类和抽象方法

5.在使用中不多,公司笔试的时候考很多

6.抽象类不能被实例化,只有被继承以后再去实例化

7.抽象类不一定要包含abstract方法,就算没有abstract方法,也不能实例化它

8.一旦类包含了abstract方法,这个类必须声明为abstract

9.抽象方法不能有主体“{}“

packagecom.s1;

publicclassDemo1{

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

}

}

abstractclassAnimal

{

Stringname;

intage;

abstractpublicvoidcry();

}

//当一个类继承的类是抽象的类时候,就要把抽象类中的所有的抽象方法全部方法实现

classCatextendsAnimal

{

publicvoidcry()

{

//donothing

System.out.println("喵喵叫");

}

}

10.接口就是给出一些没有内容的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法写出来,语法:

class类名implements接口

{

方法;

变量;

}

packagecom.s1;

publicclassDemo2{

publicstaticvoidmain(String[]args)

{

Computercomputer=newComputer();

Cameracamera=newCamera();

Phonephone=newPhone();

computer.useUsb(camera);

computer.useUsb(phone);

}

}

interfaceUsb

{

//声明了两个方法

//开始工作

publicvoidstart();

//停止工作

publicvoidstop();

}

//照相机,实现Usb接口

//一个类实现接口就要把所有的类全部实现!

classCameraimplementsUsb

{

publicvoidstart()

{

System.out.println("我是照相机,我开始工作了!

");

}

publicvoidstop()

{

System.out.println("我是照相机,我停止工作了!

");

}

}

//手机类

classPhoneimplementsUsb

{

publicvoidstart()

{

System.out.println("我是手机,我开始工作了!

");

}

publicvoidstop()

{

System.out.println("我是手机,我停止工作了!

");

}

}

//计算机

classComputer

{

//开始使用USB接口

publicvoiduseUsb(Usbusb)//体现多态

{

usb.start();

usb.stop();

}

}

11.接口不能被实例化

12.接口中的所有方法都不能有主体

13.抽象类里面是可以有实现了的方法的

14.接口中的所有方法都不能有主体,即都不能被实现

15.接口是更加抽象的抽象类!

16.一个类继承抽象类或是使用接口,那么就要实现所有的抽象方法

17.一个类可以实现多个接口

18.接口中可以有变量(但是不能用private,protected修饰)

19.接口中的变量本质上都是静态的,而且是final,不管你加不加static,所以可以直接使用:

接口名.变量名

20.在java开发中,经常把常用的变量定义在接口中作为全局变量使用

访问形式:

接口名.变量名

21.一个接口不能继承其它的类,但是可以继承别的接口

22.接口体现了程序设计的多态和高内聚低耦合的思想

第十四课final作业评讲

1.实现接口和继承父类的区别:

2.java是单继承,一个类只允许继承一个父类,这种单继承的机制可以保证类的纯洁性,比C++的多继承机制简洁

3.实现接口可以看做是对单继承的一种补充

4.继承是层次式的,不太灵活,修改某个类就会打破这种继承的平衡,但是接口就不会,因为只针对实现接口的类才起作用

5.用接口体现多态:

6.前期绑定:

在程序运行之前就进行绑定,由编译器和连接程序实现,又叫静态绑定,如static方法和final方法,包括private方法,它是隐式final的

7.后期绑定:

在运行的时候根据对象的类型进行绑定,由方法调用机制实现,因此又叫动态绑定,或是运行时绑定,除前期绑定外的所有方法都属于后期绑定

8.

//展示接口实现多态的概念

packagecom.s2;

//汽车接口

interfaceCar

{

StringgetName();//获得名字

intgetPrice();//获得价格

}

//宝马

classBMWimplementsCar

{

publicStringgetName()

{

return"我日,宝马啊";

}

publicintgetPrice()

{

return800000;

}

}

classQQimplementsCar

{

publicStringgetName()

{

return"没意思的,qq";

}

publicintgetPrice()

{

return20000;

}

}

publicclassCarShop

{

//售车的收入

privateintmoney=0;

//卖出一部车

publicvoidsellCar(Carcar)

{

System.out.println("车型:

"+car.getName()+"价格是:

"+car.getPrice());

money+=car.getPrice();

}

publicintgetMoney()

{

returnmoney;

}

publicstaticvoidmain(String[]args)

{

CarShopa=newCarShop();

//卖出宝马

a.sellCar(newBMW());

//卖出qq

a.sellCar(newQQ());

System.out.println("总收入是:

"+a.getMoney());

}

}

9.final概念:

final可以修饰变量和方法

当不希望父类的某些方法被子类覆盖的时,可以用final修饰

当不希望类的某个变量的值被修改,可以用final修饰

当不希望类被继承时,可以用final修饰

10.final修饰的变量一般用下划线书写

11.如果一个变量是final的,那么定义时候必须赋初值

12.final修饰的变量又叫常量,一般用XX_XX_XX命名

13.final什么时候用:

处于安全的考虑,类的某个方法不允许修改

类不会被其它的类继承

某些变量值是固定不变的,比如pi

第15讲讲题目

1.switch只能对int、short、byte以及枚举类型进行判断,case后面只能是常量表达是

2.猜拳的java程序设计:

有个人Tom设计他的成员变量,成员方法,和电脑猜拳,电脑每次都产生一个随机数0,1,2,0表示石头,1表示剪刀,2表示布。

请实现:

第16讲数组

1.数组是可以存放多个同一类型的数据

2.用法:

程序员用法:

数组定义:

数据类型数组名[]=new数据类型[大小];

如:

intarr[]=newint[5];

或者是int[]arr=newint[5];

或者是int[]arr=newint[5];

数组引用:

数组名[下标]

没事找事用法:

数组定义:

intarr[];arr=newint[5];

或者是int[]arr;arr=newint[5];

或者是int[]arr;arr=newint[5];

数组引用:

数组名[下标]

古板用法:

inta[]={1,2,3,4,5,6,7,8,9,0};

数组引用:

数组名[下标]

3.知道数组的大小:

arr.length(成员属性)

4.引用在栈里面,对象在堆里面

5.对象数组:

packagecom.test1;

importjava.io.*;

publicclassDemno5_2{

publicstaticvoidmain(String[]args)throwsIOException{

Dogdog[]=newDog[4];

InputStreamReaderisr=newInputStreamReader(System.in);

Buffe

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 卡通动漫

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1