类的访问权限 Java中,访问权限修饰词用于确定库中哪些类对于该库的使用者是可用的. public class Foo{ } 注意点: 每个文件(编译单元)只能有一个public类. public类的名称必须完全和含有该编译单元的文件名相匹配,包括大小写. 编译单元内没有public类也是可行的(不常这么用),在这种情况下,可以随意对文件命名. 类既不可以是private的(除该类以外,任何类都不能访问它),也不可以是protected.(事实上,内部类可以是private或protected的…
3.1  更简单的打印语句 学习编程语言的通许遇到的第一个程序无非打印"Hello, world"了,然而在Java中要写成 System.out.println("Hello, world"); 我们都会感觉太冗长了,能不能简单一些呢?静态导入可以省略掉System,就像这样 import static java.lang.System.*; public class Hello { public static void main(String[] args) {…
静态初始化: 静态初始化只在必要的时刻进行.(即当程序需要加载类进入内存的时候,执行静态初始化.静态变量和静态代码块的初始化顺序,按照在代码中声明的顺序老执行.例如:如果要执行某个public类,那么首先需要加载进内存,这时候就开始静态初始化.随后将主函数加载进栈.静态初始化只在Class对象首次加载的时候执行一次.(对象不创建,非静态变量不初始化.类不加载,静态变量不初始化.下面是代码示例: public class Test3 { public static void main(String…
六.访问权限控制 访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关. 如何把变动的事物与保持不变的事物区分开来,这是面向对象设计中的一个基本问题. 为了解决这一问题,Java提供了访问权限修饰词,以供类库开发人员向客户端程序员指明哪些是可用的,哪些是不可用的.访问权限的等级,从最大权限到最小权限依次为:public.protetced.包访问权限(没有关键词)和private. 1.包:库单元 包内包含有一组类,它们在单一的名字空间之下被组织在了一起. 当编写一个Java源代码文件时,此文…
几种访问权限修饰词 public,protected,private,friendly(Java中并无该修饰词,即包访问权限,不提供任何访问修饰词) 使用时,放置在类中成员(域或方法)的定义之前的,仅仅控制它所修饰的特定定义的访问权. 包访问权限 是默认访问权限,没有任何关键字 对于同一包中的所有其他类对这个成员都有访问权限,对于包之外的所有其他类,则没有访问权限. 取得对某成员访问访问权的途径有如下方式: 用public修饰成员,任何人在任何地方都有访问权限 不加访问权限修饰词,并将其他类放在…
一.对象导论 1.抽象过程 Alan Kay曾经总结了第一个成功的面向对象语言.同时也是Java所基于的语言之一的Smalltalk的五个基本特性,这些特性表现了纯粹的面向对象程序设计方式 1)万物皆对象. 2)程序是对象的集合,它们通过发送消息来告知彼此所要做的.要想请求一个对象,就必须对该对象发送一条消息.更具体的说,可以把消息想象为对某个特定对象的方法的调用请求. 3)每个对象都有自己的由其他对象所构成的存储.换句话说,可以通过创建包含现有对象的包的方式来创建新类型的对象. 4)每个对象都…
十一.持有对象  通常,程序总是根据运行时才知道的某些条件去创建新对象.在此之前,不会知道所需对象的数量,甚至不知道确切的类型. Java实用库还提供了一套相当完整的容器类来解决这个问题,其中基本的类型是List.Set.Queue和Map. 1.泛型和类型安全的容器  通过使用泛型,就可以在编译器防止将错误类型的对象放置到容器中. 2.基本概念 Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念: 1)Collection.一个独立元素的序列,这些元素都服从一条或多条规则.Li…
七.复用类 1.组合语法 在新的类中产生现有类的对象.由于新的类是由现有类的对象所组成,所以这种方法叫做组合. 类中域为基本类型时能够自动被初始化为零.对象引用被初始化为null. 编译器不是简单地为每一个引用都创建默认对象,如果想初始化这些引用,可以在代码中的下列位置进行: 1.在定义对象的地方.这意味着它们总是能够在构造器被调用之前被初始化. 2.在类的构造器中. 3.就在正要使用这些对象之前,这种方式称为惰性初始化. 4.使用实例初始化. 2.继承语法 当创建一个类时,总是在继承,因此,除…
2.1  创建新的数据类型:类 通过第一章掌握了面向对象的理论后,我们知道每个对象必定属于一个类型,那么Java如何创建新的数据类型?如下程序所示: class Circle { // 属性 // 方法 } 如上所示,使用关键字class定义了类Circle,用花括号{ }将整个类包括起来.当然,这个类还不能做任何事,它还需要定义一些属性和方法. 2.2  属性和方法 面向对象的一个特性就是将数据和方法结合起来.比如对一个圆抽象,可见圆有它的属性半径,它还有方法,如告诉我们它的周长和面积.不光是…
八.多态  在面向对象的程序设计语言中,多态是继数据抽象和继承之后的第三种基本特征. 多态通过分离做什么和怎么做,从另一角度将接口和实现分离开来. “封装”通过合并特征和行为来创建新的数据类型.“实现隐藏”则通过将细节“私有化”把接口和实现分离开来.而多态的作用则是消除类型之间的耦合关系. 继承允许将对象视为它自己本身的类型或其基类类型来加以处理.这种能力极其重要,因为它允许将多种类型视为同一类型来处理,而同一份代码也就可以毫无差别地运行在这些不同类型之上了.多态方法调用允许一种类型表现出与其他…