面向对象(上)
面向对象
- 面向对象
面向对象是一种符合人类思维习惯的编程思想。
在程序中,现实中的事物映射成对象,
对象的属性——>事物的特征,对象的方法——>事物的行为
事物之间的联系描述为对象间的关系,这种思想就是面向对象。 - 面向对象与面向过程
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一一实现,使用的时候依次调用就可以了。
面向对象是把构成问题的事务按照一定规则划分为多个独立的对象,然后通过调用对象的方法来解决问题。 - 面向对象的特点:封装性、继承性和多态性
3.1 封装性
封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细
节(原理),这就是封装思想。
2.继承性
继承性主要描述的是类与类之间的关系,通过继承,可以在无需重新编写原有类的情况下,
对原有类的功能进行扩展。
3.多态性
多态性指的是在程序中允许出现重名现象,它指在一个类中定义的属性和方法被其他类继承
后,它们可以具有不同的数据类型或表现出不同的行为,这使得同一个属性和方法在不同的类中
具有不同的语义。
类与对象
为了对事物的描述与该事物在现实中一致,提出两个概念:类与对象。
-
类:某一类事物的抽象描述,描述了该类事物的共同特征。
-
对象:某类事物中的一个个体的抽象描述。
-
类——>某类事物
| 实
| 现
对象——>某个事物 -
类 是 对象 的抽象,描述一组对象的共同特征。
(类的)封装——属性私有化
定义类时,将类中的属性用关键字private修饰,进行私有化——只能在所在类中访问。
需要外界访问私有属性,类内要提公有public方法——getter获取方法和setter设置方法。
class Puppy{
private int age;
public void setAge( int age ){
age = age;
}
public int getAge( ){
System.out.println("小狗的年龄为 : " +age );
return age;
}
}
public class example{
public static void main(String[] args){
/* 创建对象 */
Puppy myPuppy = new Puppy( "tommy" );
/* 通过方法来设定age */
myPuppy.setAge( 2 );
/* 调用另一个方法获取age */
myPuppy.getAge( );
/*你也可以像下面这样访问成员变量 */
System.out.println("变量值 : " + myPuppy.age );
}
}
(类的)继承
在java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,原有的类被称作父类,子类会自动拥有父类所有可继承的属性和方法。
Java中的不可被继承的含义就是不可访问(构造函数,被private修饰的成员变量及方法 和 被修饰final的类)
private关键字只能修饰内部类,不能修饰外部类;
final修饰的成员,可继承;修饰的量是常量,赋值一次后不能修改,修饰的方法不能被重写
继承的类型:
继承关键字
继承可以使用 extends 和 implements 这两个关键字来实现继承,而且所有的类都是继承于java.lang.Object,
当一个类没有继承的两个关键字,则默认继承object(这个类在 java.lang 包中,所以不需要 import)祖先类。
extends关键字:在 Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以 extends 只能继承一个类。
。。。。。。