摘要:
集合(从本部分开始涉及API) 集合是指一个对象容纳了多个对象,这个集合对象主要用来管理维护一系列相似的对象。 数组就是一种对象。(练习:如何编写一个数组程序,并进行遍历。) java.util.*定义了一系列的接口和类,告诉我们用什么类NEW出一个对象,可以进行超越数组的操作。 (注:JAVA1. 阅读全文
摘要:
以下介绍接口: List接口:(介绍其下的两个实现类:ArrayList和LinkedList) ArrayList和数组非常类似,其底层①也用数组组织数据,ArrayList是动态可变数组。 ① 底层:指存储格式。说明ArrayList对象都是存在于数组中。 注:数组和集合都是从下标0开始。 Ar 阅读全文
摘要:
封装类: JAVA为每一个简单数据类型提供了一个封装类,使每个简单数据类型可以被Object来装载。 除了int和char,其余类型首字母大写即成封装类。 转换字符的方式: int I=10; String s=I+” ”; String s1=String.valueOf(i); Int I=10 阅读全文
摘要:
内部类: (注:所有使用内部类的地方都可以不用内部类,使用内部类可以使程序更加的简洁,便于命名规范和划分层次结构)。 内部类是指在一个外部类的内部再定义一个类。 内部类作为外部类的一个成员,并且依附于外部类而存在的。 内部类可为静态,可用PROTECTED和PRIVATE修饰。(而外部类不可以:外部 阅读全文
摘要:
以下介绍的三种方法属于Object: (1) finalize方法:当一个对象被垃圾回收的时候调用的方法。 (2) toString():是利用字符串来表示对象。 当我们直接打印定义的对象的时候,隐含的是打印toString()的返回值。 可以通过子类作为一个toString()来覆盖父类的toSt 阅读全文
摘要:
类必须实现接口中的方法,否则其为一抽象类。 实现中接口和类相同。 接口中可不写public,但在子类中实现接口的过程中public不可省。 (如果剩去public则在编译的时候提示出错:对象无法从接口中实现方法。) 注: ① 一个类除继承另外一个类,还可以实现接口; class IAImpl ext 阅读全文
摘要:
接口往往被我们定义成一类XX的东西。 接口实际上是定义一个规范、标准。 ① 通过接口可以实现不同层次、不同体系对象的共同属性; 通过接口实现write once as anywhere. 以JAVA数据库连接为例子:JDBC制定标准;数据厂商实现标准;用户使用标准。 接口通常用来屏蔽底层的差异。 ② 阅读全文
摘要:
接口与类属于同一层次,实际上,接口是一种特殊的抽象类。 如: interface IA{ } public interface:公开接口 与类相似,一个文件只能有一个public接口,且与文件名相同。 在一个文件中不可同时定义一个public接口和一个public类。 一个接口中,所有方法为公开、抽 阅读全文
摘要:
常量(这里的常量指的是实例常量:即成员变量)赋值: ①在初始化的时候通过显式声明赋值。Final int x=3; ②在构造的时候赋值。 局部变量可以随时赋值。 利用final定义方法:这样的方法为一个不可覆盖的方法。 Public final void print(){}; 为了保证方法的一致性( 阅读全文
摘要:
静态方法不可被覆盖。(允许在子类中定义同名静态方法,但是没有多态,严格的讲,方法间没有多态就不能称为覆盖) 当static修饰代码块时(注:此代码块要在此类的任何一个方法之外),那么这个代码块在代码被装载进虚拟机生成对象的时候可被装载一次,以后再也不执行了。 一般静态代码块被用来初始化静态成员。 S 阅读全文
摘要:
当用final修饰类的时候,此类不可被继承,即final类没有子类。这样可以用final保证用户调用时动作的一致性,可以防止子类覆盖情况的发生。 当利用final修饰一个属性(变量)的时候,此时的属性成为常量。 JAVA利用final定义常量(注意在JAVA命名规范中常量需要全部字母都大写): Fi 阅读全文
摘要:
1、 对象不变;(改变的是主观认识) 2、 对于对象的调用只能限于编译时类型的方法,如调用运行时类型方法报错。 在上面的例子中:Animal a=new Dog();对象a的编译时类型为Animal,运行时类型为dog。 注意:编译时类型一定要为运行时类型的父类(或者同类型)。 对于语句:Dog d 阅读全文
摘要:
运行时的动态类型判定针对的是方法。运行程序访问的属性仍为编译时属性。 Overloading针对的是编译时类型,不存在运行时的多态。 习题:建立一个shape类,有circle和rect子类。 Shape类有zhouchang()和area()两种方法。 (正方形)squ为rect子类,rect有c 阅读全文
摘要:
面向对象高级: 修饰符: static:①可修饰变量(属性);②可修饰方法;③可修饰代码块。 Static int data语句说明data为类变量,为一个类的共享变量,属于整个类。 Int data为实例变量。 例: static int data; m1.data=0; m1.data++的结果 阅读全文
摘要:
思考:可是如果我们没有定义无参的构造方法,而在程序中构造了有参的构造方法,那么如果方法中没有参数,那么系统还会调用有参的构造方法么?应该不会。 多态:多态指的是编译时类型变化,而运行时类型不变。 多态分两种: ① 编译时多态:编译时动态重载; ② 运行时多态:指一个对象可以具有多个类型。 对象是客观 阅读全文
摘要:
Public表示该属性(方法)公开; (想用private还要用set和get方法供其他方法调用,这样可以保证对属性的访问方式统一,并且便于维护访问权限以及属性数据合法性) 如果没有特殊情况,属性一定私有,方法该公开的公开。 如果不指明谁调用方法,则默认为this。 区分实例变量和局部变量时一定要写 阅读全文
摘要:
继承: 父类(SuperClass)和子类(SonClass)。 父类的非私有化属性和方法可以默认继承到子类。 Class Son extends Father{ } 而如果父类中的私有方法被子类调用的话,则编译报错。 如果子类访问父类的构造方法,则在编译的时候提示访问不到该方法。 JAVA中不允许 阅读全文
摘要:
父类为public,那么子类为private则出现错误。 之所以构造方法先运行父类再运行子类是因为构造方法是无法覆盖的。 以下范围依次由严到宽: private :本类访问; default :表示默认,不仅本类访问,而且是同包可见。 Protected:同包可见+不同包的子类可见 Public : 阅读全文
摘要:
用类来生成对象的语句: Student s=new Student()。 第一个Student表示这是用Student类进行定义。“Student()”表示调用一个无参数的构造方法。 如果()中有参数,则系统构造对象的过程中调用有参的方法。 此时S称为一个对象变量。 Student s的存储区域存放 阅读全文
摘要:
在有些JAVA书籍中将overriding称为重载,overloading称为过载。 Overloading在一个类中可以定义多个同名方法,各个方法的参数表一定不同。但修饰词可能相同,返回值也可能相同。 在程序的编译过程中根据变量类型来找相应的方法。因此也有人认为 overloading是编译时的多 阅读全文
摘要:
实现高内聚就是要最大限度低提高复用性(复用性好是因为高内聚)。 可复用性是OOP的基础。 比较面向过程的思想和面向对象的思想: 面向过程的思想:由过程、步骤、函数组成,以过程为核心; 面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。 面向过程是先有算法,后有数据结构。 阅读全文
摘要:
开发过程是用对个简单的对象的多个简单的方法,来实现复杂的功能。 从语法上来看,一个类是一个新的数据类型。 在面向对象编程中,除了简单数据类型,就是对象类型。 定义类的格式: class Student{ 代码 } 注意类名中单词的首字母大写。 实例变量:定义在类中但在任何方法之外。(New出来的均有 阅读全文
摘要:
书写方法的格式: 修饰符 返回值 方法名 调用过程中 方法体 可能出现的例外 public int/void addNumber(参数) throw Excepion {} 例: public int addNumber(int a,int b){ } 注:方法名中的参数int a,int b为局部 阅读全文
摘要:
所有的事物都有两个方面: 有什么(属性):用来描述对象。 能够做什么(方法):告诉外界对象有那些功能。 后者以前者为基础。 大的对象的属性也可以是一个对象。 阅读全文
摘要:
首先,面向对象符合人类看待事物的一般规律。 对象的方法的实现细节是屏蔽的,只有对象方法的实现者了解细节。 方法的定义非常重要。方法有参数,也可能有返回值。 注意区分:对象(本身)、对象的实现者、对象的调用者。 分析对象主要从方法开始。 我们通过类来看待对象,类是对象的抽象。 阅读全文