面向对象
来源:互联网 发布: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/非静态/对象/实例
内存加载位置为堆内存,伴随对象消亡而释放
伴随着对象的产生分配其内存地址
引用格式:对象引用
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- C++ Primer中文版(第5版)
- 第六次作业流数据的标准差NO.2
- android 软键盘Enter键图标的设置
- 项目初始化首页跳转页面
- 以MediaPlayerService启动流程分析Binder工作流程
- 面向对象
- 8种错误睡姿让宝宝越睡越迟钝 应及时纠正
- android 点击EditTextView不弹出输入法
- 将图像文件编译到可执行文件内
- 转 Simplified Approach to Resolve ORA-4031
- 公开的免费STUN服务器
- 各种颜色的RGB
- Json:Json格式、Jsoncpp简介
- 第七次作业格雷码(Gray code)序列NO.1