美文网首页
面向对象的基础

面向对象的基础

作者: 往事一块六毛八 | 来源:发表于2017-02-10 14:19 被阅读4次

    什么是面向对象?

    • 面向对象是一种编程方法;
    • 面向对象是一种思维方式
    • 面向对象不是一种编程语言

    什么是面向对象的思维方式

    • 首先确定谁来做,其次确定怎么做
    • 首先考虑整体,其次考虑局部
    • 首先考虑抽象,其次考虑具体

    面向对象的学习概括

    • 创建类的方法
    • 创建对象的方法
    • 对象和对象的引用

    定义类的方法

    class 类名
      {
          属性;
          方法;
    //属性也叫成员变量,主要用于描述类的状态
    //方法也叫成员方法,主要用于描述类的行为
      }
    

    函数的重载

    1:定义:在同一个类中;方法名相同;参数类表不同(个数不同,类型不同);不考虑返回值类型;的多个相同名字的函数

     class A{
         void fun(){  system.out.printIn("没有参数");}
         void fun(int a){  system.out.printIn("有一个参数");}
    }
    

    构造函数的作用

    • 创建对象
    • 为创建的对象的成员变量赋值
    • 构造函数的重载
    • 在子类的构造函数当中,必须调用父类的构造函数
    1:定义:
    A a=new A()   //构造函数
    
    calss A(){
        A(){
              }
    }
    
    注意:
    * 没有返回值类型,方法名必须跟类名相同;
    * 原来我们写类的时候并没有些构造函数,编译器会检测类有没有构造函数,没有会加一个没有参数且方法体为空的构造函数。
    * 当类中有构造函数时,系统就不会给类自动加上没有参数的构造函数
    

    面向对象特性

    继承性

    一:定义
    【1】在现实世界中就是子承父业
    【2】在面向对象的世界当自己当中,继承就是一个雷得到了另一个类当中的成员变量和成员方法
    注:

    • 在Java当中只支持单继承,不允许多继承,
    • 子类不能继承父类中访问权限为private的成员变量和方法,
    • 子类可以重写父类的方法,以及命名与父类同名的成员变量
    • 当继承父类中的时候,如果父类中有抽象方法,就会重写父类中的抽象方法
    • 不会继承父类的构造函数,在子类的构造函数当中,必须调用父类的构造函数
    • 在子类的构造函数当中,必须调用父类的构造函数

    二:使用super调用父类的构造函数的方法

    使用super调用父类的构造函数的方法
    在子类的构造函数当中,必须调用父类的构造函数
    class Person  {
    
       String name ;
       int age;
       Person(){
       System.out.printIn("无参数的构造函数");    
    }    
     Person(String name,int age){
     
        this.name=name;
        this.age=age;
        }
    }
    class  Student extends Person{
        String grade;
        
        Sudent (){
        super();
        System.out.printIn("无参数的构造函数");   //super调用父类中的构造函数,具体调用哪一个看夸括号里的参数
        
      }    
        Student(String name,int age,int grade){
            super(name,age);//必须是构造函数内容的第一句
            this.grade=grade;
        }
    }
    
    使用super调用父类的成员函数
     class  Person{
          String name;
          int age;
        void introduce(){
        System.out.pringIn("我的姓名是"+name+“我的年龄是”+age); 
            }  
     }
    
       calss Student extends Person{
             void introduce(){
             super.introduce();
              Systenm.out.printIn("我的家在"+address);
            }
    } 
    
    class Text {
        public static void main(String args[]){
                    Student s=new Student();
                    s.name="张三";
                    s.age=20;
                    s.address="北京";
                    s.introduce();
                    
            }
    }
    

    三:函数的复写(override)
    1:定义:
    【1】:在具有父子关系的两个类当中;
    【2】:父类和子类各有一个函数,这两个函数的定义(返回值类型,函数名和参数列表)完全相同
    子类继承父类的函数,有的需要更改的过程
    【3】如果子类复写了父类的方法,则运行是系统调用子类的方法,如果子类继承了父类的方法(为重写),则运行是调用父类的方法

    封装性
    多态性

    相关文章

      网友评论

          本文标题:面向对象的基础

          本文链接:https://www.haomeiwen.com/subject/sauwittx.html