面向对象设计--基础

一、简述:

面向对象开发:

  就是不断的创建对象,使用对象,指挥对象做事。

面向对象设计:

  其实就是在管理和维护对象之间的关系。

面向对象的特征:

  封装

  继承

  多态

二、类与对象

现实世界描述一个事物,通过

  属性:该事物的描述信息

  行为:该事物是做什么的

Java语言中最基本的单位是类,我们把现实世界的事物通过类体现出来,类与事物的关联关系:

  事物:            类:

    属性 ——————>     成员变量

    行为 ___________>     成员方法

类:就是一组相关的属性和行为的集合,是抽象的概念

对象:是该类事物的具体体现,具体的存在的个体。

定义一个类就是定义一个类的成员变量和成员方法,成员变量和成员方法都是在类中定义的。

三、封装

成员变量和局部变量的区别:

  A:位置不同:成员变量是定义在类中方法外的,局部变量是定义在方法中的;

  B:内存中的位置不同:成员变量在堆内存中,局部变量在栈内存中;

  C:生命周期不同:

    成员变量随着对象的存在而存在,随着对象的消失而消失;

    局部变量随着方法的调用而存在,随着方法的调用完毕而消失;

  D:初始化值不同:

    成员变量有默认的初始值;

    局部变量没有默认的初始值,必须定义,赋值,才能使用  。

形式参数:

  基本类型:形式参数的改变不影响实际参数

  引用类型:形式参数的改变直接影响实际参数

匿名对象:

  概念:没有名字的对象,直接new ;

  应用场景:

    A:调用方法,仅仅只调用一次的时候。调用多次不合适,优点在于,匿名对象调用完毕后就是垃圾,可以被垃圾回收器回收。

    B:匿名对象可以作为实际参数传递。

封装概述:

  指隐藏对象的属性和行为,只对外提供公共的访问方式。

优点:

  A:隐藏实现细节,提供公共访问方式;

  B:提高了代码的复用性;

  C:提高了安全性。

封装原则:

  将不需要对外提供的内容都隐藏起来;把属性隐藏,提供公共访问方式对其访问。

权限修饰符:

  private:私有的,修饰成员变量和成员方法,被其修饰的成员只能在本类中才能访问,一般修饰变量;

  默认的:被其修饰的成员可以在同一个类中或者同一个包中被访问

  protected:受保护的,修饰成员变量和成员方法,被其修饰的成员可以在同一个类中、同一个包中,不同包中的子类被访问

  public:被其修饰的成员可以子啊同一个类中,同一个包中,不同包中都可以访问

  

被private修饰的成员变量,提供对应的getXxx()和setXxx()方法,构成封装性;

构造方法概述和格式

  概述:给对象的数据进行初始化;

  格式:方法名和类名相同;没有返回值类型,没有具体的返回值;

  注意事项:不写构造方法,系统默认一个构造方法;

       一旦定义了构造方法,系统不在提供,如果写了有参构造方法,最好写上无参构造方法;

       构造方法也可以重载;

类的初始化过程:

  例如:  Students  s  =   new   Student ()

  A:加载Student.class文件进内存;

  B:在栈内存为s开辟内存空间;

  C:在堆内存为学生对象创建内存空间;

  D:对学生对象的成员变量进行默认初始化;

  E:对学生对象的成员变量进行显示初始化;

  F:通过构造方法对学生对象的成员变量赋值;

  G:学生对象初始化完毕,把对象地址赋值给s变量

static关键字概述:

  static特点:

    A:随着类的加载而加载;

    B:优先于对象存在;

    C:被类的所有对象共享,是共性;一般某个成员变量被所有对象所共享的,那么应设置为静态;

    D:一般static修饰的成员变量用类名.调用

    D:在方法区的静态区

  注意事项:

    在静态方法中,没有this关键字;

    静态方法只能访问静态的成员变量和静态的成员方法;

main方法格式详解:

  public :公共的,访问权限是最大的,由于main方法是被jvm调用,所以权限要够大;

  static:静态的,不需要创建对象,类名直接调用,方便jvm调用;

  void:不需要返回值给jvm

  main:常见的方法入口

  String [] args:这是一个字符串数组,格式 :ava 类名  参数1 参数2

抽象类:
A:使用abstract 关键字修饰
B:抽象类不一定有抽象方法,但有抽象方法的类,一定是抽象类
C:抽象类不能实例化
D:抽象类的子类要么是抽象类,要么必须重写抽象类中的抽象方法

抽象成员特点:
A:成员变量:可以是常量也可以是变量
B:构造方法,有构造方法
C:成员方法:可以是抽象的,也可以是非抽象的

抽象类的问题:
A:抽象类中有构造方法,不能实例化,作用是给子类访问父类进行数据初始化
B:一个类没有抽象方法,却被定义为抽象类,作用:不让创建对象
C:abstrat 不能与final、static、private共存

接口:
A:使用关键字interface修饰;
B:类实现接口使用implement关键字
C:接口不能实例化
D:接口的实现类,要么是抽象类,要么必须重写接口中所有抽象方法

接口成员特点:
A:成员变量:只有静态常量,public static final修饰
B:没有构造方法
C:成员方法:只有抽象成员方法 public abstract 修饰

类与类,类与接口,接口与接口
A:类与类
继承关系,单继承,多层继承
B:类与接口
实现关系,可单实现,也可多实现,
还可以继承类后同时实现多个接口
C:接口与接口
继承关系,可单继承,也可多继承

抽象类和接口的区别
A:成员区别:
抽象类:成员变量可是变量,也可是常量
成员方法可是抽象方法,也可是非抽象方法
接口: 成员变量是静态常量
成员方法必须是抽象方法
C:设计理念:
抽象类: is a 定义的是共性
接口: like a 定义的是扩展性

转载于:https://www.cnblogs.com/fenglin12/p/10706094.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值