第一章JAVA语言简洁.ppt
文本预览下载声明
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 1.4 Java的面向对象机制 protected变量和方法 如果一个类中变量或方法有修饰字protected,同一类,同一包可以使用。不同包的类要使用,必须是该类的子类可以存取变量或调用。 public class ABC { protected int pro_i=5; protected void show() { System.out.println(“pro_i=” +pro_i;) } } 1.4 Java的面向对象机制 Private变量名和方法 不允许任何其他类存取和调用 friendly(前边没有修饰字的情况) 在同一程序包中出现的类才可以直接使用它的数据和方法. 1.4 Java的面向对象机制 当子类中的变量名与父类的相同,原来的变量被遮盖. 方法的覆盖(overriding)和重载(overloading) 子孙类中定义的方法和祖先类中某个方法同名,同参数行,则祖先类中的该方法被覆盖. 方法的重载是指一个对象的多态性,即多个方法用相同的名称,但参数行不同. 类 void show(int int_num) void show(double double_num) void show(nit nit_ um, float float_um) 123 1.23 123,1.23 * 1.4 Java的面向对象机制 到此为止-----final final在方法之前,防止该方法被覆盖. final在类之前,标是该类不能被继承 final在变量之前,定义一个常量. 属于类的变量和方法----static static 在变量或方法之前, 表明它们是属于类的, class ABCD { char data; static int_share_data; } class Demo { ABCD a,b,c,d} object b char data object c char data Object b char data static int share_data object b char data 1.4 Java的面向对象机制 静态变量在各实例间共享 如果是public静态变量,则其它类可以不通过实例化访问它们 静态方法称为类的方法,因此不用实例化即可调用(面向过程) 一个对象的方法可以访问对象的数据成员,尽管不属于方法的局部变量 一个类的方法只能访问自己的局部变量 1.4 Java的面向对象机制 例:不正确的引用 class StaticError { String mystring=“hello”; public static void main(String args[]) { System.out.println(mystring);} } 错误信息:can’t make a static reference to nonstatic variable. 为什么不正确? 只有对象的方法可以访问对象的变量. 1.4 Java的面向对象机制 解决的办法: 1. 将变量改称类变量 class StaticError { static String mystring=“hello”; public static void main(String args[]) { System.out.println(mystring);} } 2. 先创建一个类的实例 class NoStaticError { public static void main(String args[]) { String mystring=“hello”; System.out.println(mystring);} } } 1.4 Java的面向对象机制 1.4.4 Java中的抽象类、接口和程序包 抽象类是指不能直接被实例化的类,因此一般作为其它类的超类,与final类正好相反 抽象类中的抽象的方法-在该类中定义但不在该类中提供实现,由继承类提供细节 public abstract class SomeAbstractClass { void method1() { System.out.println(“Hi, Java”);} void method2(); } 定义抽象方法的类必须是抽象类. 1.4 Java的面向对象机制 //已有两个类Circle和Rectangle,完成相关参数的计算 c
显示全部