面向对象

来源:互联网 发布:javascript小程序 编辑:程序博客网 时间:2024/06/13 06:19

面向对象

         用客观世界中描述事物的方法来描述程序中要解决的问题

       万事万物都是对象,所有一切都可以使用面向对象方式进入计算机中

面向对象三大特征:

       继承

       封装

       多态

 

现实世界中,存在很多对象,很多桌子、书、自行车,而且其中很多属于同一类

       每一个现实世界中的事物都有一个类别或多个类别

实例:某类对象的一个特定实体。类是对象的一个抽象

Java语言使用类描述所有的模型,Java语言中的类分为两大类

       JDK自带的类—核心类库

              每个类完成常用的指定特殊功能

       程序员开发的类—自定义类

              根据任务需要,开发出完成特定功能的类

类的定义格式

       类的修饰符 class 类名 extends 父类名 implements 接口列表

       {

              类型成员变量1;

              类型成员变量2;

             

              类型成员方法1(参数1…..)

              {

                     方法体;

}

类型 成员方法2(参数1…..)

              {

                     方法体;

}

 

}

一个java源文件中可以声明无数个类,每个类在编译后对应一个独立的class文件

一个java源文件中不可以声明相同名称的类

当多个类具有相同的名称分布在不同的源文件中时,最后被编译的源文件对应的类

将覆盖之前编译生成的同名类

包(package)

包的出现解决了java程序类名冲突的问题,通过设定不同的包,使用名称相同的类不再相互覆盖

使用包也可以有效的对类定义进行有效区分,通过不同的包名,明确对应包中所包含的类的功能分类

语法结构

       package 包名;

每个java源程序只能使用一次包定义语句,而且必须出现在源代码的第一句。该语句前只能存在换行或者注释语句

包名要求全部使用小写字母

包可以有很多层次,中间使用 . 分隔

运行带有包的类需要在运行时将包名添加到类明前面。并保证对应的目录层次内存在有该文件 javac –d . 文件名.java

包的命名规范

企业级包名命名规范

       使用公司域名反写作为前缀

              如www.sina.com , 则包名前缀为从,com.sina

       加上项目名称

              如考试系统,则项目名称为exam

       加上功能模块名称

              如用户注册模块。则模块名称为user

       加上功能模块对应的子功能模块名称

              如业务逻辑层。则模块名称为business或serivce

       com.sina.exam.user.business.ebo

一旦类定义时指定了包,则必须保障这个类出现在对应的包名所在的目录下面

一个java源代码中可以有1个package语句?

类修饰符

       访问控制修饰符

       public:公共类,可以被其他类无限任意使用

       无修饰符:仅能在一个包里被其他类引用

       公共类:即为添加public访问控制修饰符的类

              公共类要求定义在与类名相同的同名java源文件中

              一个java源文件只有一个公共类

成员变量

         类的成员

              现实世界的对象包含自身的状态和行为

                     状态—>变量

                     行为—>方法

       java将现实世界中的对象的状态对应成java类中的成员变量,将现实世界中的对象的行为对应成java类中的成员方法

成员变量定义格式

       格式1:

              访问权限修饰符 数据类型 变量名;

       格式2:

              访问权限修饰符  数据类型  变量名=初值;

       格式3:

              访问权限修饰符 类型 变量1=初值1,变量2=初值2;

创建对象

       类名 对象名 = new 类名();

对象访问成员变量

       语法格式:

              获取成员变量值

                     对象名.变量名

              修改成员变量

                     对象名.变量名=值;

import与全路径名访问格式

         import语句的作用是导入一个外部的类

import语句必须出现在package语句下面,class定义语句上面

import语句可以有多句

       访问包外的类的方式一

              使用全路径名引用格式

       访问包外的类的方式二

              使用import语句将要使用的资源导入

              导入方式分为具体导入语全包导入

                     importjava.util.collection;

                     importjava.util.*;

       导入时如果导入的两个类名称相同,必须使用全路径名格式书写

       成员变量的访问控制修饰符

              公共访问控制符—public

                     被所有类访问,不受任何限制

              默认访问控制符

                     被同一包中其他类访问

              私有访问控制符—private

                     被该类自身访问

              保护访问控制符—protected

                     该类自身、同一个包中的其他类、其他包中的子类访问

       成员变量状态修饰符

              开发中使用访问权限控制符规则

如果一个变量仅仅是为了在当前类中所临时使用,则声明为private

如果一个变量创建出来就是为了给别的类访问,则声明为public

最终变量final

                     值在程序执行过程中不会改变

                     也可以对局部变量进行修饰

                     fianl型变量只能赋值一次,如果不使用可以不赋值,如果使用必须要求有值

静态变量static

                     属于类的变量

              易失变量volatile

                     可能同时被对多个线程所控制和修改

       staic与非static变量区别

              static/静态/类

                     内存加载位置为栈内存,永不释放

内存中拥有唯一的地址

引用格式:类名引用或对象引用

              非static/非静态/对象/实例

内存加载位置为堆内存,伴随对象消亡而释放

伴随着对象的产生分配其内存地址

引用格式:对象引用