收藏 分享(赏)

Java基础重点整理.ppt

上传人:ysd1539 文档编号:8147848 上传时间:2019-06-11 格式:PPT 页数:39 大小:194.50KB
下载 相关 举报
Java基础重点整理.ppt_第1页
第1页 / 共39页
Java基础重点整理.ppt_第2页
第2页 / 共39页
Java基础重点整理.ppt_第3页
第3页 / 共39页
Java基础重点整理.ppt_第4页
第4页 / 共39页
Java基础重点整理.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、1.1 有关面向对象的概念,变量:即指对象的所知道的状态 方法:指对象的功能单元。 什么是消息? 软件对象通过相互间传递消息来相互作用和通信一个消息由三部分组成: 1. 接受消息的对象 2. 要完成方法的名字 3. 方法需要的参数,1.1 有关面向对象的概念,什么是封装? 封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际,私有数据,方法,上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。,方法,数据,对象A,对象B,公有数据,1.1 有关面向对象的概念,什么是子类? 子类是作为另一个类的扩充或修正所定义的一个类.,bicycle,(super cla

2、ss),Mountain bikes,Racing bikes,Tandem bikes,sub class,1.1 有关面向对象的概念,什么是继承? 继承是子类利用父类中定义的方法和变量就像它们属于子类本身一样.,class Car int color_number; int door_number;int speed;push_break() add_oil() ,class Trash_Carextends Car double amount;fill_trash() ,1.1 有关面向对象的概念,什么是方法的覆盖? 在子类中重新定义父类中已有的方法。,class Car int col

3、or_number; int door_number;int speed;push_break() speed=0; add_oil() ,class Trash_Carextends Car double amount;fill_trash() push_break() speed=speed-10; ,1.1 有关面向对象的概念,什么是方法的重载(多态性)? 在同一个类中至少有两个方法用同一个名字,但有不同的参数。,类,void show(int int_num),void show(double double_num),void show(nit nit_ um, float float

4、_um),123,1.23,123,1.23,1.2 Java语言的特点,Java是什么?Java=“C+”-“复杂性和奇异性”+“安全性和可移植性” Java由那些特性? (1) 面向对象 封装性、多态性、继承性、动态链接 (2) 操作平台无关性 严格的语言定义:“没有依据机器的不同而不同” 或“由编译器决定”等字眼,最后的目标码都是一致的,初值都是确定的,1.2 Java语言的特点,(4) 多线程 Java提供现成的类Thread,只要继承这个类就可以编写多线程的程序。 (5) Java与C及C+的区别 不再有#include 和#define 等于处理功能 不再有structure,un

5、ion及typedef 不再有函数、不再有指针、不再有多重继承 不再有goto 不再有操作符重载(Operatior Overloading) 取消自动类型转换,要求强制转换,1.3 Java的开发环境,产生如下目录结构 javabin的目录下包含义下主要文件: javac: Java编译器, 用来将java程序编译成 Bytecode java: Java编译器,执行已经转换成Bytecode的 java应用程序. jdb: Java调试器, 用来调试java程序 javap: 反编译,将类文件还原回方法和变量. javadoc:文档生成器,创建HTML文件 appletviwer : Ja

6、va解释器, 用来解释已经转换成Bytecode的java小应用程序.,1.5 Java类型系统,1.5 Java类型系统,byte 8 位 2 的补码 (byte) 0 short 16位 2 的补码 (short) 0 int 32 位 2 的补码 0 long 64位 2 的补码 0L float 32位 IEEE 754浮点数标准 0.0f double 64位 IEEE 754浮点数标准 0.0d char 16位 同一码字符集 u0000(Unicode character),1.5 Java类型系统,程序:保留字,标识符(类名、域名、方法名、符号常量、局部变量,标号、),操作符、

7、界定符,字面常量。 声明一个变量 int data=10; Boolean isAlived; Java中的操作符:与C基本一致 Java中不再有指针了,1.5 Java类型系统,在Java中”引用“是指向一个对象在内存中的位置,在本质上是一种带有很强的完整性和安全性的限制的指针. 当你声明某个类,接口或数组类型的一个变量时,那个变量的值总是某个对象的引用或者是null引用. 指针就是简单的地址而已,引用除了表示地址而外,还象被引用的数据对象的缩影,还提供其他信息. 指针可以有+,-运算,引用不可以运算.,1.5 Java类型系统,s1,s2,10001,s2=s1;,a string,100

8、01,class Mydate int year;int month;int day; ,Mydate today=new MyDate(),10008,today,s1=“a string”;,例: String s1;String s2;,1.5 Java类型系统,能够动态取得的内存有两种,一种是对象实体,一种数组. Java用new申请内存,不需要自己释放不用的内存. 在Java中,定义数组时不必给出数组的大小,因为Java的数组是动态分配的。 数组变量实际上是一个引用变量,因此要实例化才能使用。 例:int Array; Array=new int8;,1.5 Java类型系统,例:S

9、tring arrayOfString=new String10;每个数组元素包含一个对字符串对象的引用,此时值分配了包含字符串引用的空间,并没有对字符串本身分配内存,此时不能访问。,arrayOfString,for(int i=0;iarrayString.length;i+)arrayOfStringi=new String(“Hello”+i),arrayOfString0 arrayOfString1arrayOfString8 arrayOfString9,对数组的引用,对 字 符 串 的 引 用,1.6 Java中的字符串,有两个字符串str1,str2 str1=str2; 是

10、指两个引用指向同一个地址 str1.equals(str2) 是指两个字符串内容相等 获取String对象的信息 例如:String s=“this is a string”;int len=s.length();boolean result=s.equal(“this is a 特test”);char ch=s.charAt(6);,1.8 Java名空间及访问规则,每个类都创造了有自己的名字空间,指方法和变量可以知道彼此的存在,可以使用。 abstract类不能直接产生属于这个类的对象 final类不能被其他任何类所继承(安全的考虑) public类不但可以被同一程序包中的其它类使用,别

11、的程序包中的类也可以使用. friendly(缺省)类只能被本包中的其它类使用,1.7 Java中的类、方法和变量,类的严格定义及修饰字,类的修饰字 class 类名称 extends 父类名称 . ,public, abstract, final或者没有,变量修饰字 变量数据类型 变量名1,变量名2=变量初值;,方法修饰字 方法的返回值类型 方法名称(参数1,参数2, /方法的内容 ,方法和变量的定义及修饰字,public、protected、private,1.8 Java名空间及访问规则,变量和方法的修饰字public、protected、private public: 任何其它类、对象

12、只要可以看到这个类的话,那么它就可以存取变量的数据,或使用方法。,class ABC public int pub_i=5;public void show)() System.out.println(“pub_i”+pub_i); ,1.8 Java名空间及访问规则,class Demo public static void main(String args) ABC abc=new ABC();System.out.println(“abc.pub_i”+abc.pub_i);abc.pub_i=10;abc.show(); ,abc.pub_i=5 pub_i=10;,1.8 Java名

13、空间及访问规则,protected变量和方法 如果一个类中变量或方法有修饰字protected,同一类,同一包可以使用。不同包的类要使用,必须是该类的子类可以存取变量或调用,public class ABC protected int pro_i=5;protected void show() System.out.println(“pro_i=” +pro_i;) ,1.8 Java名空间及访问规则,不同中的类不能使用,class DEF public static void main(String args) ABC abc=new ABC();System.out.println(“ab

14、c.pro_i=“+abc.pro_i);abc.pub_i=10;abc.show(); ,import mytest.pack.ABC; class DEF extends ABC public static void main(String agrs) DEF def=new DEF();System.out.println(def.i);def.i=10; def.show(); ,pro_i=5 pro_i=10,1.8 Java名空间及访问规则,不同包但是是子类,1.8 Java名空间及访问规则,private 不允许任何其他类存取和调用 friendly(前边没有修饰字的情况)

15、在同一程序包中出现的类才可以直接使用它的数据和方法.,1.8 Java名空间及访问规则,当子类中的变量名与父类的相同,原来的变量被遮盖.,class A int data_a=3; class B extends A int data_a=5; class C extends B void print_out() System.out.println(“data_a= ”+data_a);System.out.println(“A.data_a= ”+A.data_a);System.out.println(“B.data_a= ”+B.data_a);,data_a=5 A.data_a=3

16、 B.data_a=5,class demo public static void main(String args) C c=new C(); c.println_out(); ,1.8 Java名空间及访问规则,方法的覆盖(overriding)和重载(overloading) 子孙类中定义的方法和祖先类中某个方法同名,同参数行,则祖先类中的该方法被覆盖. 方法的重载是指一个对象的多态性,即多个方法用相同的名称,但参数行不同.,类,void show(int int_num),void show(double double_num),void show(nit nit_ um, float

17、 float_um),123,1.23,123,1.23,1.8 Java名空间及访问规则,到此为止-final final在方法之前,防止该方法被覆盖. final在类之前,标是该类不能被继承 final在变量之前,定义一个常量. 属于类的变量和方法-static static 在变量或方法之前,表明它们是属于类的,class ABCD char data; static int_share_data; class Demo ABCD a,b,c,d,1.8 Java名空间及访问规则,静态变量在各实例间共享 如果是public静态变量,则其它类可以不通过实例化访问它们 静态方法称为类的方法,

18、因此不用实例化即可调用(面向过程) 一个对象的方法可以访问对象的数据成员,尽管不属于方法的局部变量 一个类的方法只能访问自己的局部变量,1.8 Java名空间及访问规则,例:不正确的引用 class StaticError String mystring=“hello”;public static void main(String args) System.out.println(mystring); 错误信息:cant make a static reference to nonstatic variable. 为什么不正确? 只有对象的方法可以访问对象的变量.,1.8 Java名空间及访问

19、规则,解决的办法: 1. 将变量改称类变量 class StaticError static String mystring=“hello”;public static void main(String args) System.out.println(mystring); ,1.8 Java名空间及访问规则,2. 先创建一个类的实例 class NoStaticError public static void main(String args) String mystring=“hello”;System.out.println(mystring); ,1.9 Java中的抽象类、接口和程序

20、包,抽象类是指不能直接被实例化的类,因此一般作为其它类的超类,与final类正好相反 抽象类中的抽象的方法-在该类中定义但不在该类中提供实现,由继承类提供细节 public abstract class SomeAbstractClass void method1() System.out.println(“Hi, Java”);void method2(); 定义抽象方法的类必须是抽象类.,1.9 Java中的抽象类、接口和程序包,利用接口可实现多重 继承(可同时实现多个接口) 接口的作用和抽象类类似,指定原型,不直接定义方法的内容. 关键字implement用 来实现方法,即在使用时要用给

21、出方法的实际内容 接口中的方法和变量 是public的,interface Stack void push(object x);object pop();,class A extends Applet implements Stack void push(object x) ;/具体内容object pop();/具体内容 ,1.10 对象的构造函数,构造函数应包含哪些内容? 构造函数多半定义一些初值或内存配置工作 一个类可以有多个构造函数(重载),根据参数的不同决定执行哪一个. 如果程序中没有定义构造函数,则创造实例时使用的是缺省函数,它是一个无内容的空函数.,1.10 对象的构造函数,th

22、is this指自己这个对象 this的作用是要将自己这个对象当作参数,传送给别的对象中的方法.,class ThisClass public static void main() Bank bank=new Bank();bank.someMethod(this); ,class Circle int r;Circle(int r)this.r=r;public area() return r*r*3; ,super指这个对象的父类 super用来引用父类中的方法及变量数据. public class apple extends fruits public apple(int price) super(price); 以上句子表示使用超类的构造函数生成实例 super必须是子类构造器的第一条语句,1.10 对象的构造函数,小结,名空间及访问规则 -package,class/object,member,局部变量 -public ,private,protected,default,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报