Java—面向对象(1)

Java—面向对象(1)

1.面向过程和面向对象

1.什么是面向过程和面向对象

程序设计方法一般分为两大类:面向过程的设计方法和面向对象的设计方法。

面向过程:面向过程程序设计方法就是先分析出解决问题所需要的步骤,然后按照步骤依次去执行。

**面向对象:**面向对象程序设计方法是把构成问题的事务分解成各个对象,对象来描述在解决整个问题中的步骤的一些行为和属性。

例如:学生课表为:数学,语文,英语 现在要解决给学生上课的问题:

面向过程设计:**1.上课铃 2.数学老师讲数学课 3.下课铃 4.上课铃 5.语文老师讲语文课 6.下课铃 7.上课铃 8.英语老师讲英语课 9.下课铃 **

面向对象设计在面向过程的基础上我们可以将整个过程分为:1.教师(每个老师为一个对象,每个对象都有讲课这个讲课这个行为)2.课程控制(上下课铃控制课程的开始和结束)。

2.面向过程和面向对象的差异

​ 通过这个例子可以看到面向过程就是自上而下的按照步骤编程,面向对象是实物高度抽象化,将复杂的问题简单化,更注重的是功能而不是过程步骤,面向过程中更多的体现的是执行者,面向对象中更多的体现是指挥者。

2.面向对象的特点

对象:对象就是现实世界存在的任何事务都可以称之为对象,有着自己独特的个性,对象一般都由属性+方法组成。

属性:用来描述具体某个对象的特征。比如张三身高180M,体重70KG,身高、体重都是属性。

方法:用来描述具体某个对象的行为和功能。比如张三讲话、能开车就是其行为和功能。

:具有同种属性的对象称为类,是个抽象的概念。比如“人”就是一类,期中有一些人名,比如张三、李四、老王等等这些都是对象,类就相当于一个模具,他定义了它所包含的全体对象的公共特征和功能,对象就是类的一个实例化,小明就是人类的一个实例化。

面向对象具有三大特性:封装、继承、多态

3.面向对象的简单实现

1.类和对象的创建

对象是类的实例化,在创建一个对象前就必须先有一个所属的类。Java中类使用关键字class

普通类的定义模式:访问控制符 修饰符 class 类名 {

​ 访问控制符 修饰符 成员变量;

​ …

​ 访问控制符 修饰符 成员方法(){};

​ …

​ }

1.访问控制符和修饰符

类的访问控制符:public 和默认(什么都不写)

控制符说明
public所有类都可以访问,一个Java文件中只能有一个public类且类名要和文件名保持一致
默认只有在同一个包里的类才能访问

类的修饰符

修饰符说明
final该类不能被继承,只有该类本身的实例对象才能访问类中的内容
abstract抽象类,类中可以有非抽象方法,子类必须实例化该类的抽象方法,只能通过子类访问该类的内容

成员变量的访问控制符

控制符说明
public所有类都可以访问
protected同包的类及其子类可以访问,不同包的子类也可以访问
默认同包的类可以访问
private只有当前的类可以访问

成员变量的修饰符

修饰符说明
final该变量在第一次赋值之后不能再次修改,值保持不变
static该变量属于该类所用实例,所有实例共用一个该变量

方法的访问控制符

控制符说明
public所有类都可以访问
protected同包的类及其子类可以访问,不同包的子类也可以访问
默认同包的类可以访问
private只有当前类的对象可以访问

方法的修饰符

修饰符说明
final该方法不能被覆盖
static该方法属于类,可以直接通过类名调用
abstract抽象方法,在该类必须空实现,被非抽象子类实现,不能与 final和static同时使用
2.类和对象的实例

例:创建一个Person类

public class Person {
    public String name;//姓名
    private String sex;//性别
    private int age;//年龄
    //打招呼的行为方法
    public void sayHello(){
        System.out.println(name+":Hello");
    }
}

实例化类创建对象:通过关键字new创建对象

对象的创建模式:类 对象名 =new 类的构造方法

创建对象名字为 张三 电泳打招呼方法:

public class text{
    public static void main(String[] args) {
        Person p=new Person();
        p.name="张三";
        p.sayHello();
    }
}

运行结果:

在这里插入图片描述

3.创建对象时内存分配

上述代码通过Person p=new Person();代码创建了一个对象,通过p.name="张三";代码为属性name赋值。

在这里插入图片描述

在执行Person p=new Person();时,jvm会在堆中开辟一段空间供对象使用,并同时给对象的属性初始化;将开辟的空间的起始地址传给变量p;执行p.name="张三"时,将name的值修改修改为“张三”。

4.面向过程和面向对象的优缺点

面向过程

优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源。
缺点:代码执行时相互影响,耦合度较高,没有面向对象易维护、易复用、易扩展

面向对象

优点:复杂问题简单化,代码易维护、易复用、易扩展,由于有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
缺点:性能比面向过程低

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值