zoukankan      html  css  js  c++  java
  • 面向对象 基础

    1、数组有没有length()这个方法?String有没有length()这个方法?

    数组中没有 length() 方法

     数组中只有length属性,表示数组的长度,而且这个属性可以理解为一个常量,

     一旦数组产生,我们就可以得到length的值,这个值不能改变;

    String中有length() 方法

      返回的是字符串的长度,也不能修改。

     

    2、抽象类和接口有什么区别?

    相同点: ① 代表属性的抽象层

             ②都不能被实例化

             ③都能包含抽象方法

    不同点: ①在抽象类中可以为部分方法提供默认现实,而接口中只能包含抽象方法;

                抽象类便于复用,接口便于代码的维护;

             ②一个类只能继承一个直接的父类,但可以实现多个接口;

     

    3、重写和重载的区别?

    重载:方法名相同,参数列表不同(个数、顺序、数据类型)

          在同一个类中,和访问修饰符、返回值类型无关

          作用:调用方法,赋值更加的便捷;

    重写:以前的方法不能满足我么现在的需求了,需要重新编写,

          方法名与参数列表相同,

          返回值类型相同或是其子类,

          访问修饰符不能严与父类,

          抛出的异常不能大于父类;

         (需要重写的时候,子类的方法和父类的方法一摸一样即可)

     

    4、请你写出你理解的Java面向对象的三大特性:

    1)封装: 

    什么是封装?

    将类的信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法对隐藏的信息进行操作和访问;

    封装的好处:①只能通过规定的方式访问数据,

                ②隐藏类的实例细节,方便修改和实现;

    封装的步骤:①将属性私有化 private

                ②创建setter方法,针对用户输入的值进行判断,

                ③编写getter方法来获取值;

    (2)继承

    继承的目的:在多个种类中有多个重复的方法,显得代码冗余,

                通过使用继承来避免;

    条件:满足 is - a 的关系  只能是单根继承

    继承的语法:通过 extends 关键字来实现类与类的继承,

                   class 子类类名   extends 父类类名(){}

                  被继承的这个类被称为父类,基类或者超类,

                  继承的这个类被称为子类或者派生类;

    继承的优缺点:优点:简化了代码

                                  提高了扩展性

                                 提高了可维护性

                    ②缺点:造成了耦合性过高,牵一发而动全身;

    不能被继承的:①父类的构造方法

                  ②private修饰的内容

                  ③不用包下默认的修饰符的内容

         Super:可以调用父类中的属性,方法,构造方法,

                如果在构造方法中使用,必须在第一行;

       执行顺序:父类属性--父类构造方法--子类属性--子类构造方法

    (3)多态

         什么是多态:

    同一种操作,由于条件不同,产生的结果也不同,

    同一种引用,使用不同的实例而执行不同的操作;

       使用:父类名 父类引用 =new 子类类名();

             父类的引用指向子类的实例;

             如果子类和父类中都有同样的方法,我们在使用多态的方法调用的是子类的方法

       好处:①提高代码的复用性

             ②解耦合

     

    5、写出异常的语法(throwtry)

     

       try: 执行可能产生的代码

          try{

             //代码段

    }catch(异常类型ex{

    //对异常进行处理的代码段

    }finally{

    //除遇到exit()肯定执行的代码段

    }

     

     

    throw new Exception

      抛出异常,直接在程序中写异常信息

     public void setSex(String sex) {

    /**

     * 如果赋值的是男或者女则正常赋值否则给出异常提示

     */

    if("".equals(sex) ||  "".equals(sex)){

     

    this.sex = sex;

    }else{

    //抛出异常

    try {

    throw  new  Exception("性别赋值不正确");

    } catch (Exception e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    }

  • 相关阅读:
    操作系统学习五部曲
    由实模式进入保护模式
    extends && implements
    <mvc:annotation-driven>
    集合类关系
    Servlet8
    SprigMVC基础测试
    (转载)synchronized代码块
    jetty与tomcat
    输入输出流总结
  • 原文地址:https://www.cnblogs.com/gnos/p/12880373.html
Copyright © 2011-2022 走看看