java第一章抽象和封装

面向过程和面向对象有什么区别?

面向过程的核心是函数,以功能为中心,实现了函数级别的代码重用。

面向对象的核心是封装了属性和方法(行为)的类,以数据为中心,实现了类级别的代码重用。

面向对象因为采用了类,所以具有封装、继承和多态特性,提高了代码重用性、可维护性和扩展性,适合大型项目的开发。

类和对象的区别:

类是对某一类事物的描述,是抽象的概念上的定义(一类事物),类具有自己的属性和行为

对象是实际存在的,具体事物的个体(一类实物详细的某一个)

关系:好比模具和用模具制作出的关系,一个类可以有多个对象

权限符的区别:

public:项目下所有的类文件都可以访问:项目可见性(权限最大)

protect:同一个包中都可用,protect可让子类访问

默认:什么都不写,再同一个包中可用,不写修饰符

private:权限只在自己的类中可见,其他不可用(另一个类中新建对象也不行)

final:final修饰的属性值是不可更改的

static:用它修饰的成员变量或方法可直接使用类名,静态方法中调用不能用super和this,在方法体里不可定义static变量

构造方法:

构造方法名称和类名相同,没有返回值类型,作用是在创建对象时执行一些初始化操作(完成对象成员的赋值)

方法重载的作用:

属性值已经在 构造方法中固定了,在创建对象时完成不同属性的动态赋值(灵活性强)

方法重载特点:方法名相同,构造方法参数列表不同与返回值类型和修饰符无关。

封装:

封装将属性设为private(私有的)

封装通过private,protect,public和默认权限控制符实现权限的控制,降属性设为private,属性只能在类中可见,在提供public权限的setter/getter实现对属性的读取(存取)在setter方法中对用户的输入的控制范围进行判断(控制用户输入范围)

this:当成员变量和局部变量名相同,必须使用this,:public void setName(String name){this.name=name;}

总结:

抽有象类中可以有构造方法吗?

解答:抽象类可以有构造方法,

其构造方法可以被本类的其他构造方法调用,

若此构造方法不是由 private 修饰,也可以被其子类中的构造方法调用。

抽象类和抽象方法的特点?

答:(1) 抽象类和抽象方法都通过 abstract 关键字来修饰。

(2) 抽象类不能实例化。抽象类中可以0到多个抽象方法,甚至全部方法都可以

是抽象方法。

(3) 抽象方法只有方法声明,没有方法实现。

有抽象方法的类必须声明为抽象类。

子类必须重写所有的抽象方法才能实例化,否则子类还是一个抽象类。

属性可以是简单变量,也可以是一个对象

面向对象的三大特征      封装、继承、多态   

   abstract  可以用来修饰类和方法,但不能用来修饰属性和构造方法

原文地址:https://www.cnblogs.com/yh0409/p/9948537.html