面向对象三大特性与return break continue关键字的理解

面向对象三大特性与return break continue关键字的理解

1.面向对象三大特性
1.1 编程思维分为两种,一种是面向过程,一个是面向对象.面向过程指的是面对一个问题,一步一步解决它,而面向对象是在面对问题时找工具来解决它.可以理解为,面向对象是建立在面对过程的基础上的,它把面向过程的步骤作为工具,供解决问题使用.
1.2 Java实现面向对象,是依靠其三大特性的,分别为封装,继承和多态.
**封装:**作用是为了将类或者对象进行封存操作,不让外界直接访问,只能按照其给出的方式进行访问,保证数据的安全性.API(应用程序编程接
口)是封装的实现工具,它给出了很多类的说明文档,意义在于让我们知道类的实用介绍,包括:
◆看包,主要是判断是否在java.lang包下,如果在的话不需要进行import操作,其他则需要;
◆查看类的解释和说明,往往是看中文解释的第一句话来理解类的作用 ◆如何创建类的对象,并不是所有类的对象都可以通过new
类名()使用构造方法来创建,抽象类就不行;但却可以通过类中的一些方法来实现对象的创建;
◆查看成员方法,这个往往要通过方法名本来的英文含义理解,也可通过中文注解;需要关注的是方法的参数列表和返回值类型

**继承:**作用是为了减少代码的复用性和使类和类之间产生关系;因为我们在实际生活中,事物都存在着包含关系,而被包含着往往又有其独特的特性,而继承则可以解决这样的关系;
在java中指的是“一个类”可以“继承自”“另一个类”。 "被继承的类"叫做: 父类/超类/基类,"继承其他类的类"叫做:子类。继承后,“子类”中就“拥有”了“父类”中所有的成员(成员变量、成员方法)。 “子类就不需要再定义了”。
而Java中的继承都是单继承的,一个子类只能extends一个父类,父类也可以成为爷爷类的子类,所以也不妨碍其进行多层继承;但需要注意的是,子类名必须是is a 父类名的关系,如Student is a Person,不然继承也是没有意义的;
继承体系中一个特殊父类-抽象类abstract 修饰,体现了模板思维,有如下注意事项
◆有抽象方法的类一定是抽象类,抽象类中不一定有抽象方法
◆抽象类不能创建对象,只用来作为父类
◆抽象方法主要是供子类重写
◆抽象类的子类,如果是普通类,那么必须重写父类中的所有抽象方法
◆抽象类的子类,如果是抽象类,那么可以不重写父类中的抽象方法
◆抽象类中可以有构造方法,但不能创建对象,主要是供子类初始化从父类继承过来的属性
什么时候会定义抽象方法:当父类中的某个方法,所有的子类都有不同的实现的时候,父类中的这个方法就定义成抽象方法
**多态:**是指同一行为,对于不同的对象具有多个不同表现形式.而程序中多态: 是指同一方法,对于不同的对象具有不同的实现.
多态的定义就表明其实现的条件有如下几项:
◆必须有继承或者实现
◆必须是父类的引用指向它子类的对象,如:Fu fu = new Zi zi();
◆方法的重写,若不重写,则没有意义
多态创建对象方式与普通的对象创建方式不同,它的成员访问特点也和普通对象有不同;对于成员变量和静态方法,其编译和运行都是看父类,对于非静态方法,编译看父类,运行看子类,也就是说子类独有的方法,多态是无法正常编译的,如果一定要访问的话,需要”骗过”编译器,Java语言给出的解决方案是将创建对象向下转型,再进行访问,类似于基本数据类型中由大到小的强制转换:

Aniaml anl = new Cat();
Cat c = (Cat)anl;//向下转型
c.catchMouse();// 可以访问 子类独有的功能,解决多态的弊端
if( anl instanceof Cat){//判断anl是否能转换为Cat类型,如果可以返回:true,否则返回:false
    Cat c = (Cat)anl;//安全转换
}

2.关键字return,break,continue关键字的区别
return关键字代表返回,会用在方法中,代表结束方法,返回调用方法处,返回值依据返回值类型而定,void代表无返回值,有数据类型代表有返回值;需要注意的是,构造方法既没有返回值类型也没有void,抽象方法可以拥有返回值类型,但因为其没有方法体,所以没有return.
break和continue使用在循环语句中(break也可使用在switch选择语句中),break代表跳出循环,直行循环{}后面的语句,而continue代表结束当前进行的本次循环,进入下一次循环,并未跳出{}的范围.
把这三者拿出来作比较是因为在实际应用中,往往循环,选择,方法在进行混合使用,当我们程序达到指定条件需要跳出循环,结束当前循环,亦或是结束方法,使用的关键字都会不同,所以掌握彼此的区别很重要.
代码示例:

public class Test {
    public static void main(String[] args) {
        System.out.println("控制台开始执行程序");
        method();
        System.exit(0);
    }
    private static void method() {
        for (int i = 1; i <= 10; i++) {
            if (i % 2 == 0) {
                continue;
            }
            if (i % 7 == 0) {
                System.out.println("方法结束");
                return;
            }
            if (i % 9 == 0) {
                System.out.println("循环结束");
                break;
            }
            System.out.println(i);
        }
        System.out.println("我还会被执行吗?");
    }

}

运行结果参考:

控制台开始执行程序
1
3
5
方法结束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值