第三讲JAVA面向对象应用一

上传人:lcm****801 文档编号:89357243 上传时间:2019-05-23 格式:PPT 页数:36 大小:222.50KB
返回 下载 相关 举报
第三讲JAVA面向对象应用一_第1页
第1页 / 共36页
第三讲JAVA面向对象应用一_第2页
第2页 / 共36页
第三讲JAVA面向对象应用一_第3页
第3页 / 共36页
第三讲JAVA面向对象应用一_第4页
第4页 / 共36页
第三讲JAVA面向对象应用一_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《第三讲JAVA面向对象应用一》由会员分享,可在线阅读,更多相关《第三讲JAVA面向对象应用一(36页珍藏版)》请在金锄头文库上搜索。

1、第三讲 JAVA面向对象应用(一),JAVA中的类 访问控制符 修饰符,Java中的类-系统定义的类,类库是java语言的重要组成部分,是系统提供的已实现的标准类的集合。 常用java包: Java.lang java核心类库,包括基本数据类型、数学函数、字符串处理、线程等,Java程序运行时自动加载。 Java.io java语言的标准输入/输出类库 Java.util 使用工具类库 Java.awt 图形用户界面库 Java.awt.event 图形用户界面组件的事件类库 Java.applet java applet的工具类库 J 开发网络程序的类库 Java.sql 是实现JDBC的类

2、库,Java中的类-自定义类,访问权限控制符修饰符 class 类名 extends 父类 implements 接口 属性; 方法; ,访问控制符 类(public),公共访问控制符public Test.java public class Test extends XXXX 当一个类被声明为public,意味着它对程序的其他部分可见。 一个源文件中至多有一个public类,且文件名与这个类名一致。如源文件中没有public类,则文件名没有要求。,访问控制符 类(默认),默认访问控制符(friendly),包权限 Test.java class Test extends XXXX 类定义前没

3、有访问权限控制符修饰时,说明具有缺省的访问权限。缺省的访问权限为包权限,也就是只有同一个包中的类可访问这个类,其他包内的类无权访问。,访问控制符 接口( public ),公共访问控制符public Test.java public interface Test extends 其他接口 当一个接口被声明为public,意味着它对程序的其他部分可见。 一个源文件中至多有一个public接口,且文件名与这个类名一致。如源文件中没有public接口,则文件名没有要求。,访问控制符 接口(默认 ),默认访问控制符(friendly),包权限 Test.java interface Test exte

4、nds 其他接口 接口定义前没有访问权限控制符修饰时,说明具有缺省的访问权限。缺省的访问权限为包权限,也就是只有同一个包中的类或接口可访问这个接口,其他包内的类或接口无权访问。,访问控制符 属性和方法(public),声明为public的属性和方法均可被有类访问权限的访问者访问。 尽可能只将需要公开的方法声明为public,对属性尽可能声明为private。,访问控制符 属性和方法(public),package publicpkg; class Student public String m_name=“”; public String getName() return m_name; pu

5、blic class Test1 public static void main(String args) Student stu=new Student(); stu.name=“david”; System.out.println(stu.getName(); System.out.println(stu.name); ,访问控制符 属性和方法(默认),缺省访问权限(friendly),包权限 属性和方法没有明确声明访问权限时,说明它具有缺省的访问权限。只能被同一包内的类访问。,访问控制符 属性和方法(默认),Student.java package defaultpkg; public

6、class Student String m_name=“name”; public String getName() return m_name; Test1.java package defaultpkg; public class Test1 public static void main(String args) Student stu=new Student(); System.out.println(stu.getName(); System.out.println(stu.m_name); ,访问控制符 属性和方法(默认),Test2.java package defaultpk

7、g.p1; import defaultpkg.*; public class Test2 public static void main(String args) Student stu=new Student(); System.out.println(stu.getName(); System.out.println(stu.m_name); ,访问控制符 属性和方法(protected),保护访问权限protected 只能被类本身及其子类访问。,访问控制符 属性和方法(protected),Student.java package protectedpkg; public class

8、 Student protected String m_name=“name”; protected String getName() return “getName”; Test1.java package protectedpkg.p1; import protectedpkg.*; public class Test1 extends Student public void test() System.out.println(getName()); System.out.println(name); ,访问控制符 属性和方法(protected),Test2.java package p

9、rotectedpkg.p1; import protectedpkg.*; public class Test5 public Test2() Student stu=new Student(); System.out.println(stu.getName(); System.out.println(stu.m_name); ,访问控制符 属性和方法(private),私有访问权限private 只能被类本身访问。,访问控制符 属性和方法(private),Student.java package privatepkg; public class Student private Strin

10、g m_name=“name”; public String getName() return m_name; Test1.java package privatepkg; public class Test6 public Test6() Student stu=new Student(); System.out.println(stu.getName(); System.out.println(stu.m_name); ,访问控制符小结,访问控制符目前只有四种: public, 默认(friendly),protected, private 教课书P82页提到的 private prote

11、cted已经不再使用,访问控制符小结,同一包内 的子类,包内的其他类,所有类,其他包内 的子类,类本身,Public,默认,protected,private,访问权限示意图:,修饰符 类(abstract),抽象类 在定义类时,如在class前加修饰符abstract,则该类为抽象类。抽象类是不能实例化的类,即不能创建对象。 抽闲类主要作为基类或父类存在。,修饰符 类(abstract),Animal.java public abstract class Animal public abstract String run(); Horse.java public class Horse ex

12、tends Animal String run() ,修饰符 类(final),最终类 在定义类时,如在class前加修饰符final,则该类为最终类,不能被继承。 抽象类一般作为工具类存在。 public final class Test 声明类时abstract 和 final不能同时使用。,修饰符 属性(static),在声明属性时,如在前面加修饰符static,则该属性就成为类变量,而不是实例变量。 类变量只有一份,该类的所有实例化的对象都可以访问,是一种数据共享机制。而实例变量是随着对象的创建而产生,只能供对象自己使用。 换句话说,静态属性是公共的存储单元,类的任何对象都可以访问。,

13、修饰符 属性(static),class Constant public static int s_count=0; public class Test1 public static void main(String args) Constant con1=new Constant(); Constant con2=new Constant(); con1.count=1; con2.count=2; System.out.println(con1.count); / 输出2 ,修饰符 属性(static),静态初始化器的使用 class Test2 public static int s_c

14、ount; public static String s_name; static s_count=1; s_name=“”; ,修饰符 属性(final),在声明属性时,如在前面加修饰符final,则该属性为常量,属性值不变。 public class Test1 public final double PI=3.14; public void modify() PI=3.55; ,修饰符 属性(volatile),修饰符volatile 在多线程编成环境中,JAVA规范允许线程保留共享成员变量的私有拷贝可以提高速度,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。 当其中

15、某个线程修改共享成员变量的值时,不能保证其他所有线程能及时获悉共享成员变量的变化。 在变量声明前加修饰符volatile,各个线程不能保留共享成员变量的私有拷贝,每次必须读共享成员变量。 class Test public static volatile int s_count=0; ,修饰符 方法(abstract),abstract修饰的方法只有方法头没有方法实现,abstract方法只能定义在abstract类或接口中。 abstract方法必须在子类中实现,如子类中没有实现,则该子类必须声明为abstract类。,修饰符 方法(abstract),public abstract class Animal public abstract String run(); public class Horse extends Animal public String run() return “; ,修饰符 方法(static),static修饰的方法是类方法,不用实例化类即可访问。 由于static方法是类方法,它不能操纵具体类对象的成员变量,它只能处理static属性变量。,修饰符 方法(final),final修饰的方法是不能更改的最终方法,不能被子类

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号