Java的面向对象编程基本概念学习笔记整理
个人理解,编程中所谓的 类¨ 与现实世界中对物体的分门别类中的类是同一个概念,只是在编程中将其借用进来。类代表有一系列共性和相同操作或动作的事物,在编程中即为抽象的数据类型。具体的每个个体(现实世界中)、实例变量(对于在编程中来说)就是对象。 类是现实世界某些对象的共同特征(属性和操作)的表示,对象是类的实例。 类的属性:就是类的静态属性的简称,指类内包含的各项数据,如变量或其他类的对象;
Java中类的定义形式如下: [修饰符] class 类名 [extends 父类] [implements 接口名] { 类成员变量声明 类方法声明 } 我们再来仔细说说这中间的每一个部分: 在class关键字前,也即类的修饰符有大体分三种类型――访问修饰符public公共类、final修饰符(最终类说明符)和abstract修饰符(抽象类说明符) 而其中,权限修饰符只能为public或默认(即为空,什么都没有,表示定义为友好的),public表示该类可被任何地方使用和访问(只要程序能找到该类位置),无论是在同一包内,还是在不同包。注意,这与C++中不同,C++中没有还对类的访问权限用修饰符来限制的,而是对类之间的继承关系有访问权限的说明,除此之外,它们倒是都对类的属性和方法有访问权限有限制。 默认的访问权限(即定义为友好的),即是指只能被同一包内的类引用和访问,而不能被其它包中的类访问和引用,即使import进去。 后面还会提到:以类的属性和方法缺省修饰符时,也表示为只能被同一包中的类引用和访问。 Java中不允许多重继承,这与C++中不同,也算是为了弥补这个不足,Java中引进了接口的概念。
[修饰符] 类名 对象名=new类名(参数列表); 在声明对象和复杂变量时,可以不在声明时用创建,可以在以后的构造函数中创建。 类中定义的方法通常起到两种作用:一是围绕着类的属性进行各种操作;二是与其他的类或对象进行数据交流、消息传递等操作。 Java中声明方法的语法如下: [修饰符] 返回值类型 方法名(参数列表) throws 例外名1,例外名2,… { 方法体: 局部变量声明; 语句序列; } 类的方法,又称为成员函数,用来规定类属性上的操作,实现类的内部功能的机制,同时也是类与外界进行交互的重要窗口。 Java程序员把注意力放在创建称为类的用户自定义类型(user-definedtype)上,类也称为程序员定义的类型(programmer-definedtype),每个类都含有数据和一组操作数据的方法,类中的数据部分称为实例变量。用户定义类型(即类)的实例称为对象。
构造函数(可以对比C++中,与C++几乎相同)
newEmployee (“James Bond”,100000,1950,1,1); 构造函数的特点有: (1)构造函数和类具有相同的名字。 (2)一个类可以有多个构造函数。 (3)构造函数可以有0个、1个或多个参数。 (4)构造函数没有返回值。 (5)构造函数总是和new运算符一起被调用。 构造函数的作用 (2)引入更多的灵活度(变量赋值或更复杂的操作) (3)Java中可以不定义构造函数 Java中可以不定义构造函数,此时系统会自动为该系统生成一个默认的构造函数。这个构造函数的名字与类名相同,它没有任何形式参数,也不完成任何操作。 方法概述 换言之:方法是类的主要组成部分。在一个类中,程序的作用体现在方法中。 方法即是JAVA创建一个有名字的子程序。一个主方法和若干个子方法构成。主方法调用其他方法,其他方法间也可互相调用,同一个方法可被一个或多个方法调用任意次。
引入Java类库; 定义用户类1 { 定义类1的若干变量或对象: 定义类1的方法1; 定义类1的方法2; … 定义类1的方法M1; } 定义用户类2 { 定义类2的若干变量或对象: 定义类2的方法1; 定义类2的方法2; … 定义类2的方法M2 } Java推出了“访问控制修饰符”的概念,允许库创建者声明哪些东西是客户程序员可以使用的,哪些是不可使用的。 这种访问控制的级别在“最大访问”和“最小访问”的范围之间,分别包括:public,“默认”(无关键字),protected以及private。下面的列表说明访问控制修饰符含义:
Java中类的访问控制符只有一个:public,即公共的。一个类被声明为公共类,表明它可以被所有的其他类所访问和引用,这里的访问和引用是指这个类作为整体是可见和可使用的,程序的其他部分可以创建这个类的对象、访问这个类内部可见的成员变量和调用它的可见的方法。 用于类内属性: 用public修饰的类内属性称为公共属性,若这个类是公共类则它可以被所有的其他类访问。 缺省访问控制符 假如一个类没有访问控制符,说明它具有缺省的访问控制特性。这种缺省的访问控制权规定该类只能被同一个包中的类访问和引用,而不可以被其他包中的类使用,这种访问特性称为包访问性。通过声明类的访问控制符可以使整个程序结构清晰、严谨,减少可能产生类间干扰和错误。 用于类属性 类内的属性和方法如果没有访问控制符号来限定,也说明它们具有包访问性。 3 私有访问控制符private private string name; private double salary; private Date hireDay; private(私有的)关键字用来确保可以访问这些实例字段的只能是Employee类本身的方法。
总起来说,在下面的情况下可以选择私有方法: (1)与类的使用者无关的那些方法。 (2)如果类的实现改变了,不容易维护的那些方法。
私有保护访问控制符private protected 相对于protected,privateprotected修饰符把同一包内的非子类排除在可访问的范围之外,使得成员变量更专有于具有明确继承关系的类,而不是松散地组合在一起的包。 静态修饰符 使用static(静态)关键字,可满足两方面的要求: (1)一种情形是只想用一个存储区域来保存一个特定的数据――无论要创建多少个对象,甚至根本不创建对象;被static修饰的属性称为静态属性,这类属性一个最本质的特点是:它们是类的属性,而不属于任何一个类的具体对象。换句话说,对于该类的任何一个具体对象而言,静态属性是一个公共的存储单元,任何一个类的对象访问它时,取到的都是相同的数值,同样任何一个类的对象去修改它时,也都是在对同一个内存单元做操作。 static一项重要的用途就是帮助我们在不必创建对象的前提下调用那个方法。 (编辑:台州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |