本站已关停,现有内容仅作科研等非赢利用途使用。特此声明。
查看: 1440|回复: 0
打印 上一主题 下一主题

第Ⅱ期Android菜鸟饭团#Java学习#第九课 活动笔记

[复制链接]
跳转到指定楼层
1#
发表于 2015-10-30 14:27:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xiao_ming 于 2015-10-30 15:50 编辑

第Ⅱ期Android菜鸟饭团#Java学习#第九课 活动笔记


继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承可以理解为一个对象从另一个对象获取属性的过程。如果类A是类B的父类,而类B是类C的父类,我们也称C是A的子类,类C是从类A继承而来的。在Java中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类。

继承中最常使用的两个关键字是extends和implements。通过使用这两个关键字,我们能实现一个对象获取另一个对象的属性。所有Java的类均是由java.lang.Object类继承而来的,所以Object是所有类的祖先类,而除了Object外,所有类必须有一个父类。

        在这之前,简要的叙述一下各种关键字作用域及其权限:

  • 成员变量
  • 成员变量的作用范围与实例化对象的作用范围相同,当类被实例化以后,成员变量就会在内存中分配空间并进行初始化,当实例化对象的生命周期结束后,成员变量的生命周期才结束
  • 静态变量(全局变量)
  • 被static关键字所修饰,静态变量不依赖于特定的实例,而被所有实例所共享,只要一个类被加载,那么JVM就会给类的静态变量分配存储空间。所以,我们可以通过类名和变量名来访问静态变量
  • 局部变量
  • 其作用域和可见性为它所在的{ }内


         成员变量的4种作用域:

  • public

该成员变量或方法对所有类和对象都是可见的,并且可以被他们直接访问和调用
(本类、本package、子类、其他package)
  • private

该成员变量或方法是私有的,只有本类对其有访问权限
(本类)
  • protected

该成员变量或方法对自己及其子类是可见的
(本类、本package、子类)
  • default

该成员变量只有自己以及与其位于同一包中的类可见
对于有继承关系的情况,当父类与子类位于同一包中时,子类对父类中的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活动一样,我们依然是任性的一个子都不要,并且还在周六的分享中提供盒饭和不定期的惊喜小礼物呦~所以快来加入我们吧,为你的大神梦想迈出第一步。
把你的个人信息和申请理由快快发送到android@chuang1.net,前来加入我们吧

ChinaGDG.com
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表