第一章Java面向对象

面向对象

现实世界就是“面向对象的”,任何的事物都可以看作“对象”,如身边的朋友,万里长城,街道上的汽车

为什么使用面向对象

符合人们的思维,是客户和软件设计开发人员之间,软件设计开发人员内部交流会更加顺畅,同时有代码重用性高,可靠性等有点,大大提高了软件尤其是大型软件的设计和开发效率。

面向过程的核心是函数,以功能为中心,实现了函数级别的代码重用面向对象的核心是封装了属性和方法(行为)的类以数据为中心实现了代码的重用。面向对象应为采用了类,所以具有继承和多态性,可以进一步重用代码和简化编程,而面向对象的过程中没有继承和多态性。

面向对象的设计过程

1.发现类。
2.发现类的属性。
3.发现类的方法。

抽象时遵循的原则
1.属性和方法的设置是为了解决业务问题
2.关注主要的属性和方法
3.如没有必要,勿增加额外的类,属性与方法

创建对象
1.通过构造方法来创建对象,如“Penguin p=new Penguin();"
2.通过对象名.属性名的方式调用属性,如”p.name=‘qq’;
3.通过对象名,方法名的方式调用方法,如"p.print();"

类(Class)和对象(Object)是面向对象中的两个核心概念。类是对某一类事物的描述,是抽象的,概念上的定义。对象是实际存在的,具体的事物个体。类和对象就好比摸具和件的关系,建筑物图样和建筑物实物的关系,我们可以由一个类创建多个对象

final

final除了可以用修饰属性外,还可以修饰方法和类

构造方法
构造方法是一个特殊的方法,当没有Penguin()方法时,系统会提供一个空的Penguin()方法。
构造方法的名称和类名相同
没有返回值
。构造方法的主要作用就是在创建对象时执行一些初始化操作,如给成员属性赋初始值。

构造方法的重载

方法名相同,参数列表不同这称为构造方法的重载。

在没有给类提供任何构造方法时,系统会提供一个无参的方法体为空的默认构造方法。一旦提供了自定义构造方法,系统讲不再提供这个默认构造方法,如果要使用它,则程序员必须动手添加

如果同一个类中包含了两个或者两个以上的方法,他们的方法名相同,方法参数的个数或者参数类型不同,则称该方法被重载了,这个过程称为方法重载。成员方法和构造方法都可以进行重载。

方法重载的判断依据
⭐ 必须在同一个类里。
⭐ 方法名相同。
⭐ 参数列表(方法参数的个数或者参数类型)不同。
⭐ 与方法返回值和方法修饰符没有任何关系。
⭐ 在使用this调用自身的其他构造方法时,只能作为第一条语句。

使用this调用重载的构造方法,能能在构造方法中使用,必须是构造方法的第一条语句
{ 因为this在对象内部指代自身的引用,所以this只能调用实例变量
this 不能调用类变量和类方法,也不能调用局部变量。
}

static修饰符

static可以用来修饰属性,方法和代码块,static修饰的变量属于这个类所有,即由这个类创建的所有对象共同用一个static变量。通常把static修饰的属性和方法称为类属性(类变量)和示例方法。使用static修饰方法的最常见的例子是我们熟悉的main()方法。

static可以修饰属性,方法,代码块
静态成员由类名直接调用,也可以由对象调用。静态变量是类级别的,只开辟一个空间
当类被首次调用时,静态成员即被初始化
静态方法只能调用静态属性
非静态方法可以直接调用静态成员

在加载类的过程中,完成静态变量的内存分配,在执行静态块,两者是创建对象之前执行的

类属性和类方法可以通过类名和对象名访问,示例属性和实例方法只能通过对象名访问

类方法只能访问类属性和其他类方法

注意!:静态方法中不能使用this和super关键字。

构造方法没有返回值类型,如果有,则不是构造方法,而是构造方法同名的成员方法详情

封装
封装是面向对象的三大特性之一, 就是将类的状态信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现在隐藏信息的操作和访问。
封装的具体步骤
修改属性的可见性来限制对属性的访问:为每个属性创建一对赋值(setter)的方法和取值(getter)方法,用于对这些属性的存取;在复制方法中,加入堆属性的存取控制语句。
封装的好处
隐藏类的事现细节;让使用者只能通过程序规定的方法来访问数据;可以方便的加入存取控制语句,限制不合理操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值