当前位置:文档之家› 循序渐进学从入门到精通

循序渐进学从入门到精通

Java韩顺平笔记第1讲内容介绍.项目演示.原理剖析1. 课程包括:java面向对象编程,java图形界面,java数据库编程,java文件i/o流,java网络编程,java的多线程2. Java历史:1990 sun 启动绿色计划 1992 创建 oak语言—> java1994 gosling 参加硅谷大会演示java功能震惊世界 1995 sun 正式发布java第一个版本,目前最新的是jdk7.03. java开发工具:记事本,jcreator,jbuilder,netbean,eclipse4. jdk包括:jre(java运行环境)java的工具:编译器javac.exe解释执行器java.exe java的类库:3600多个,常用的150多个5. 第一个程序://功能:显示―HelloWorld‖//public:表示类是公共的,一个文件中只有一个public类 //class:表示这个是一个类//HelloWorld:类名(公共类的类名,必须和文件名一样)public class HelloWorld {//一个主函数,程序的入口 public static void main (String args[]) { //执行语句System.out.println("helloWorld!"); } }6. Java源程序(.java文件)——>java字节码文件(.class文件)——>由解释执行器(java.exe)将字节码文件加载到java虚拟机(jvm)——>字节码文件(.class)就会在java虚拟机中执行l,average); } }第2讲变量.数据类型1. 在java里面int占4个字节,long占8个字节2. Java基本数据类型:整数:(byte一个字节:-128---127 int四个字节:-2147483648---+2147483647short两个字节:-32768---+32767 long八个字节:)小数(浮点):float double布尔:boolean字符:char(两个字节,可以存放汉字, char test1 ='中';)引申到字符串(类)3.在java中对char进行运算的时候,直接是当做ASCII码对应的整数4.数据不能从高精度到低精度的转换Byte<short<int<long<float<doublefloat a=3.4;是过不去的,在java中小数默认是double(双精度)的应该写成是float a=3.4f;不过可以强制转换:int a=(int)1.2; intb=(int)1.95. int a=1;int b=a+1.2; a先是往高精度转换,然后赋给b,就报错改成int a=1;double b=a+1.2; 或者int a=1;float b=a+1.2f; 就解决了第4讲流程控制1. switch case语句中,switch条件表达式的数据类型应该和后面case的类型一致2. switch case语句中,可用的数据类型主要是:byte short int char enum第5讲类与对象1. 面向对象编程-类与对象类名首字母大写类里面的元素叫类的成员变量/属性2. 类的定义package 包名;class 类名extends 父类implements接口名{成员变量;构造方法;成员方法;}3. 如何创建对象:先声明再创建Cat cat1;cat1=new Cat();一步到位Cat cat1 =new Cat();4. 引用传递类似于指针一样第8讲this 类变量1. this属于类的对象的而不是属于类的2. 5this不能在类的外部使用,只能在类定义时候使用!3. 可以用类名直接访问静态变量第9讲类方法封装1.类变量是该类的所有对象共享的对象,一改全改了2.定义语法:访问修饰符static 数据类型变量名3. public class Demo9{static int i=1;static{System.out.println("zhixingyicile");i++;}//会自动执行一次,也只有一次public Demo9(){System.out.println("ffffffff");i++;}public static void main(String args[]){Demo9 t1=new Demo9();System.out.println(Demo9.i);Demo9 t2=new Demo9();System.out.println(i);}}4.类方法(静态方法、静态函数):属于所有对象实例的5.Java中:类变量(static)原则上用类方法(static)去访问;类方法中不能访问非静态变量,就是非类变量,但是普通的成员方法可以访问静态变量(类变量)使用:类名.类方法名对象名.类方法名6.非类变量就是实例变量,属于每个对象自己的7.Java面向对象编程的三(四)大特征:封装、继承、多态(、抽象)8.抽象:把一类事物的共有的属性和行为提取出来,形成一个物理模板,此研究问题的方法就是抽象9.封装:把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。

10.封装的访问控制修饰符11.四种访问控制符:公开级别:public受保护级别:对子类和同一个包中的类公开默认级别:没有修饰符,向同一个包的类公开,子类不可以访问类中默认级别的元素的私有级别:用private修饰,只有类本身才能访问公开>受保护>默认>私有12.13.包的三大作用:区分相同名字的类当类很多的时候可以很好的管理类控制访问范围14.包的打包命令:package com.xiaoming 一般放在文件的开始的地方15.引包命令:improt 包名第10讲访问修饰符重载覆盖1.一个文家中如果只有public类,那么这个public类可以不用主函数2. 不想被继承就设为protected3.子类最多只能继承一个父类,Java里面不允许一个子类继承多个父类,C++却可以,如Java中一定要呢,就用接口吧4.Java的所有类都是Object 的子类,继承层次数没有限制7.方法重载:类的同一种功能的多种实现方式,取决于调用者传递的参数8.方法重载注意事项:方法名相同方法的参数类型,个数,顺序至少有一项不同方法的修饰符可以不同方法的返回类型可以不同另外:只是返回类型不一样并不构成重载只是控制访问修饰符不一样不构成重载第11讲约瑟夫问题(丢手帕问题)1.方法覆盖的:子类有一个方法和父类的某个方法名称、返回类型、参数一样2.方法覆盖注意:子类的方法的返回类型、参数、方法名称要和父类的一样,否则编译出错子类方法不能缩小父类方法的访问权限,但是扩大是可以的,子类抛出比父类更少的异常第十二讲多态1.多态性:访问子类可以通过访问父类:Animal cat =new Cat();Animal dog =new Dog();2.在使用多态的时候,如果有使用覆盖函数,那么被覆盖的方法(即是父类中的的那个相应的方法)是要存在的。

3. 多态:一个引用(类型)在不同情况下的多种状态,可使代码更加灵活4.java允许父类的引用变量引用它子类的实例,是自动完成的第十三讲抽象类接口(难点重点)1.父类方法的不确定性,用抽象类修饰这个方法,abstract。

2.抽象类还是可以一样被继承3. 当一个类继承的类是抽象的类时候,就要把抽象类中的所有的抽象方法全部方法实现4.用abstract关键词来修饰的时候,一定是抽象类和抽象方法5.在使用中不多,公司笔试的时候考很多6.抽象类不能被实例化,只有被继承以后再去实例化7.抽象类不一定要包含abstract方法,就算没有abstract方法,也不能实例化它8.一旦类包含了abstract方法,这个类必须声明为abstract9.抽象方法不能有主体“{}“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方法,它是隐式fi nal的7.后期绑定:在运行的时候根据对象的类型进行绑定,由方法调用机制实现,因此又叫动态绑定,或是运行时绑定,除前期绑定外的所有方法都属于后期绑定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 数据类型[大小];如:int arr[]=new int[5];或者是int[] arr=new int[5];或者是int []arr=new int[5];数组引用:数组名[下标]没事找事用法:数组定义:int arr[]; arr=new int[5];或者是int[] arr; arr=new int[5];或者是int []arr; arr=new int[5];数组引用:数组名[下标]古板用法:int a[]={1,2,3,4,5,6,7,8,9,0};数组引用:数组名[下标]3.知道数组的大小:arr.length(成员属性)4.引用在栈里面,对象在堆里面5.对象数组:用的话是表示地址相等,比较4.对象、字符串的很多不能用”==”,字符串的内容是否相等是用equals方法5. 数组可存放同一类型数据简单数据类型(int,float)数组,可以直接赋值对象数组在定义后,赋值时候需要再次为每个对象分配空间【即是:new 对象】数组大小必须事先指定,如:int x;int a[]=new int[x];是可以的数组名可以理解为指向数组首地址的引用数组的下标是从0开始标号的第十九讲多维数组1.多维数组,定义:语法:类型数组名[][]=new 类型[大小][大小] int a[][]=new int [2][3]第二十讲二进制位运算移位计算1.0的反码和补码都是02.我们只会针对有符号的数才讲反码补码3.java没有无符号数,换言之,java中的数都是有符号的4.在计算机运算的时候,都是以补码的方式运算的5.按位与& 或| 异或^ 取反~6.~-2=-3(00000010->11111101->11111100->10000011)7.2&3=00000010 2|3=00000011 ~-5=(1000 0101->11111010->11111011(补码)->00000100)48.有3个移位运算符:>>算术右移:低位溢出,符号位不变,并用符号位补由于移动而空出的高位<<算术左移:符号位不变,地位补0>>>逻辑右移:9.记住:对负数操作就要先找补码!!!正数也是,只不过不边罢了。

相关主题