第Ⅱ期Android菜鸟饭团#Java学习#第九课 活动笔记
继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承可以理解为一个对象从另一个对象获取属性的过程。如果类A是类B的父类,而类B是类C的父类,我们也称C是A的子类,类C是从类A继承而来的。在Java中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类。
继承中最常使用的两个关键字是extends和implements。通过使用这两个关键字,我们能实现一个对象获取另一个对象的属性。所有Java的类均是由java.lang.Object类继承而来的,所以Object是所有类的祖先类,而除了Object外,所有类必须有一个父类。
在这之前,简要的叙述一下各种关键字作用域及其权限:
成员变量的4种作用域:
该成员变量或方法对所有类和对象都是可见的,并且可以被他们直接访问和调用 (本类、本package、子类、其他package) 该成员变量或方法是私有的,只有本类对其有访问权限 (本类) 该成员变量或方法对自己及其子类是可见的 (本类、本package、子类) 该成员变量只有自己以及与其位于同一包中的类可见 对于有继承关系的情况,当父类与子类位于同一包中时,子类对父类中的default成员变量或方法有访问权限,当父类与子类不在同一个包中时,子类对父类中的default变量或方法没有访问权限 (本类、本package)、
【注】peivata、protected不能用来修饰类,可以用来修饰类的只有(public、abstract、final)实例方法可直接调用本类的类方法
通过extends关键字一般形式如下: public class A {
private int i;
protected int j;
public void func() {
}
}
public class B extends A {
} |
另外,还有一些其他关键字: this关键字:
1.在类的方法定义中使用的this关键字代表使用该方法的对象的引用。 2.当必须支出当前使用方法的对象是谁时要使用this。 3.有时使用this可以处理方法中成员变量和参数重名的情况。 4.This可以看作是一个变量,它的值是当前对象的引用。
public class Leaf{ int i = 0; Leaf(int i){this.i = i} Leaf increament(){ i++; return this; } void print (){System.out.println(“i= ”+i);} public static void main(Srting[ ] args){ Leaf leaf = new leaf(100); leaf.increament ().increament ().print(); } } |
static关键字:
1.在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所以对象来说,static成员变量只有一份。 2.用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。PS:静态方法不再是针对于某个对象调用,所以不能访问非静态成员。 3.可以通过对象引用或类名(不需要实例化)访问静态成员。
package和import语句:
为便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,Java引入包(package)机制,提供类的多重类命名空间。 package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包。(若缺省该语句,则指定为无名包)。PS:package [.pkg2[.pkg3...]]; Java编译器把包对应的文件系统的目录管理,package语句中,用‘.’来指明包(目录)的层次,例如使用语句 package com.sxt;则该文件中所以的类位于.\com\sxt目录下 如果将一个类打包,则使用该类时,必须使用该类的全名(例如:com.sxt.MyClass),Java编译器才会在找到该类。也可以使用import在文件的开头引入要使用到的类;例如: import com.sxt.MyClass; import java.util.*;//引入java.util包中所有的类 ... ... … MyClass = new MyClass ();//可以直接使用类名 可以不需要用import语句直接使用java.lang包中的类。
package import总结:
如果想将一个类放入包中,在这类源文件第一句话写package;必须保证该类的class文件位于正确目录下(该类的源码可能会产生影响,删除或转移到另外的目录);另外的类想访问的话:写全名;引入;*;具体类名;访问位于同一个包中的类不需要引入;必须class文件的最上层包的父目录位于classpath下。
J2SDK中主要的包介绍:
1.java lang—包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。 2.java awt—包含了构成敞口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。 3.java applet—包含applet运行所需的一些类。 4.java net—包含执行与网络相关的操作的类。 5.java io—包含能提供多种输入/输出功能的类。 6.java util—包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数。 Super关键字 这个类似PHP中的parent关键字, 其实super相当于父类的一个引用指针,this则指向自身。
每一个技术小白都有一个成为大神的梦想,现在Android菜鸟饭团就给你这个成就梦想的机会。我们提供最新的Android技术教学,只要你又耐心和毅力就一定会在这里有所收获。 Android菜鸟饭团由 南阳GDG组织发起,秉承着开放、分享、创新的原则,希望通过GDG社区的力量能够给更多的想要学习Android开发技术的小白们创造一个学习,交流,分享的环境。同往常的GDG活动一样,我们依然是任性的一个子都不要,并且还在周六的分享中提供盒饭和不定期的惊喜小礼物呦~所以快来加入我们吧,为你的大神梦想迈出第一步。 |