设为首页收藏本站

SKY外语、计算机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5210|回复: 3
打印 上一主题 下一主题

[java基础] 面向对象程序设计<上>

[复制链接]

12

主题

5

好友

425

积分

中级会员

Rank: 3Rank: 3

生肖
星座
摩羯座
性别

最佳新人 活跃会员 灌水之王 论坛元老

跳转到指定楼层
楼主
发表于 2012-8-17 20:23:31 |只看该作者 |倒序浏览
本帖最后由 sky_yx 于 2015-12-30 14:10 编辑

一、面向对象程序理念
     面向对象程序设计是一种程序设计理念
     核心:对象、类
1、类
  •      类的定义:
       [修饰符]class类名[extends 父类名][implements 接口名序列]{
                 //类体
      }
  •      修饰符通常为访问控制符、特征说明符,可以使用的修饰符有public、final、abstract等
  • class是定义类的关键字,[]中的内容可选
  • 类名符合标识符命名规范、体现类的功能,首字母大写
  • “extends 父类名”表示该类继承了一个类,父类名指明被继承的类的名称,该类必须是存在的,可以是JDK类库中定义的类,也可以是自定义类。只允许但继承(继承一个父类)
  • “implements 接口名序列”表示该类所实现的接口,接口名序列指明该类可以实现一个或多个接口,多个接口之间用都好分割
  • “类体”是类设计的主体部分,一般包括成员变量和成员方法和构造方法
  • 构造方法用于实例化对象,方法名与类名一致,方法五返回值
  • 变量的定义格式:
    [修饰符]数据类型 变量名[=初始值];
  • 方法的定义格式:
    [修饰符]返回值类型 方法名(参数列表){
             //方法体
    }
    2、对象
    • 对象是类的实例
    • 创建对象:包括声明对象、为对象分配内存空间
    • 声明对象格式:类名 对象名;
    • 为对象分配内存空间要用new运算符和类的构造方法:对象名=new 类名([参数列表]);
    • 实际:类名 对象名=new 类名([参数列表]);
    • 一个类可以创建无数个对象,每个对象占用不同的内存空间,他们之间相互对立,互不影响
    • 使用对象:创建对象的过程就是为对象分配内存空间的过程,对象一旦拥有了自己的内存空间,就可以调用创建类中的方法以及使用自己定义的变量。使用对象必须通过运算符“.”来对对象的变量和方法进行访问。
    • 格式:对象名.变量名;对象名.方法名([实参列表])
    • 对象使用"."运算符访问变量和方法,要注意变量和方法定义的权限修饰符
    • 调用有形参的方法时,需要用实参替换方法中的形参,实参个数、类型、顺序必须与形参一致
    • 类定义中,如果用修饰符static声明类的成员,则该成员成为类成员,或者静态成员,可以直接使用“类名.变量名”和“类名.方法名(实参列表)”进行调用

    二、访问控制符、封装、this应用
    • 访问控制符
    • 通过访问控制修饰符来确定对类、类内部的属性和方法的访问控制权限
    • 类的访问控制符有public和默认;属性和方法的访问控制符有4个:public、private、protected、默认

    权限修饰符同一个类
    同一个包
    不同包的子类 不同包非子类
    private
    default
    protected
    public
    • 封装
    • 类定义中设计属性由该类自身进行操作,通过声明一些公开的方法提供给其他类调用,从而达到访问属性的目的
    • 通过封装可以:
               ——隐藏类的实现细节
               ——迫使用户通过接口访问数据
               ——增强代码的可维护性
    • this引用
    • 当方法中传递的参数与类的属性重名的时候,使用this引用来区分类的属性和方法中同名局部变量
    • 方法的返回值是当前类的对象的时候,需要使用this关键字
    • 定义类的时候,如果写了多个构造方法,经常会在一个构造方法的第一条语句使用this()调用它前面定义好的构造方法,以免出现重复代码

    三、继承、final应用
    • 继承根据基础类创建具有特殊属性行为的新类。由继承而得到的新类称为子类,被继承的基础类称为父类。子类继承父类的属性和行为并根据需要增加自己的状态行为
    • 子类可以继承父类的属性,包括实例成员变量和类的成员变量
    • 子类可以继承父类除构造方法以外的成员方法,包括实例成员方法和类成员方法
    • 子类可以重定义父类成员
    • 子类不能继承父类的构造方法,因为父类 构造方法创建的是父类对象,子类必须定义自己的构造方法,创建子类自己的对象
    • 子类的上转型对象
    • 父类的引用指向子类的对象
    • 上转型对象不能操作子类新增加的成员变量与成员方法
    • 上转型对象可以操作子类继承或重写的成员变量与方法
    • 如果子类重写父类的某个方法后,通过上转型对象调用的方法一定是调用了重写方法
    • final修饰符可以修饰类以及类的成员
    • 被final修饰的成为最终类,它不可以再被继承生成子类
    • 被final修饰类的属性称为常量,它的值在程序的执行过程中被初始化后就不可改变
    • 被final修饰的方法成为最终方法,是不可以被当前类的子类重新定义的方法,子类只能使用从父类继承来的被final声明的方法,不可以覆盖它。

    四、抽象类、接口
    • 用abstract修饰的类称为抽象类,用abstract修饰的方法称为抽象方法
    • 抽象类不一定包含抽象方法,但有抽象方法的类一定是抽象类
    • 一个类继承了抽象类,实现抽象类中所有的抽象方法,才能进行实例化
    • 若子类没有实现抽象类中所有的抽象方法,则子类也必须声明为抽象类
    • 接口:“纯”抽象类,一组具有特定意义的静态常量和抽象方法的集合
    • [修饰符]interface 接口名 [extends 父接口列表]{
                 [修饰符]类型 属性名 = 值;
                 返回值类型 方法名(参数列表);
          }
    • 修饰接口的修饰符只有public和默认修饰符
    • 接口可以多重继承,但接口只能继承接口,不能继承类
    • 属性定义时不需要赋值,是常量,属性的修饰符默认认为final、static
    • 接口中方法必须是抽象方法,修饰符默认为public abstract
    • 接口实现       class 类名 implements 接口名[,接口名...........]
    • implements是一个类实现接口的关键字,一个类可以 实现多个接口,接口之间用逗号分隔
    • 如果实现接口的类不是abstract修饰的抽象类,则在类体中必须实现接口列表中所有接口的抽象方法
    • 一个类在实现接口的抽象方法时,必须使用public修饰符,否则编译错误
    • 接口回调:用接口声明的句柄指向实现接口的类所创建的对象,那么该句柄就可以调用接口中的方法

    更多内容待续(包含JavaSE、JavaWeb、JavaEE)。。。。。。
    码字可不是一件容易的事啊[吃饭去鸟].....(((((ヾ( o=^?ェ?)o ┏━┓ ,然后弄继续代码


分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
分享淘帖0 收藏收藏0 评分评分

2

主题

2

好友

217

积分

中级会员

Rank: 3Rank: 3

性别
保密
沙发
发表于 2012-8-18 02:03:03 |只看该作者
本帖最后由 sky_yx 于 2015-12-30 14:10 编辑

来点高级的。。。。。。。。。。。。。。。

回复

使用道具 评分 举报

12

主题

5

好友

425

积分

中级会员

Rank: 3Rank: 3

生肖
星座
摩羯座
性别

最佳新人 活跃会员 灌水之王 论坛元老

板凳
发表于 2012-8-18 12:09:55 |只看该作者
本帖最后由 sky_yx 于 2015-12-30 14:10 编辑

来点高级的。。。。。。。。。。。。。。。[/quote]
呵呵。。。。。。慢慢来吧
   基础弄不好  高级的又肿么弄呢

回复

使用道具 评分 举报

2

主题

2

好友

217

积分

中级会员

Rank: 3Rank: 3

性别
保密
地板
发表于 2012-8-23 21:17:32 |只看该作者
本帖最后由 sky_yx 于 2015-12-30 14:10 编辑

晕了 。。
我还是新手    我纠结

回复

使用道具 评分 举报

您需要登录后才可以回帖 登录 | 立即注册


手机版|SKY外语计算机学习 ( 粤ICP备12031577 )    

GMT+8, 2024-4-26 22:06 , Processed in 0.148621 second(s), 26 queries .

回顶部