zoukankan      html  css  js  c++  java
  • [JAVA] 面向对象小小总结

    面向对象概述

    符合人类思维习惯的编程思想 , 生活中存在着不同形态的事物 , 这些事物存在着不同的联系 , 在程序中使用对象来映射现实中事物 , 使用对象关系来描述事物之间的联系, 这种思想就是面向对象.

    面向对象过程 

    分析解决问题所需要的步骤, 使用函数把步骤实现, 再依次调用就可以了. 例如,我要洗衣服,把衣服放在洗衣机,由它代我洗衣服,洗衣机执行功能

    类与对象 ->封装

    • 类的定义
    • 对象创建与使用
    class Exampel1{
    public static void main (String[] args){
            Person p1 = new Person();//创建第一个person对象
            Person p2 = new Person();//创建第二个person对象
            P1.age = 18;//赋值
            P1.speak();//调用对象的方法
            P2.speak();
    }
    }
    • 如果没有赋值 , Java会自动赋予初始值
    • 类的设计
    public class Student{   //设计一个学生类
    
            String name ;  // 定义学生姓名属性
            int age ;  //定义学生年龄属性
    
          public void introduce() { 
              //方法中打印属性name和age的值
                 System.out.println("大家好, 我叫"+name +"我今年" +age + 
     "岁了");
    }
    
          
    }

    类的封装 

    将类的属性私有化, 使用 private 关键字来修饰, 不允许外界随意访问

    setter  : 给成员变量设置属性值,起到一定的保护作用

    getter : 从成员变量中获取属性值

    构造方法

    • 定义
    • 方法名与类名相同
    • 在方法名的前面没有返回值类型的声明
    • 在方法中不能使用return语句返回一个值, 但是可以单独写return语句作为方法的结束
    class Person{
        int age ; 
       // 定义有参的构造方法
       public Person (int a ){
           age  =  a ;  //  为age 属性赋值
      }
       public void speak (){
             System.out.println("今年我已经" + age + "碎了");
      }
    }
    
    Public class Test{
        public static void main(Strings [] age ){
             Person p1 = new Person( 20 ); //实例化Person的对象
             p1.speak();
      }
    }

    构造方法的重载

    在一个类中可以定义多个构造方法,只要每个构造方法的参数类型或参数个数不同即可

    this关键字

    1. 访问本类中的成员变量
    2. this和super是区分子类与父类重名的部分

    super关键字

    1. 获取父类中的内容
    2. 必须写在第一行, 调用父类中的构造方法
    3. 如果父类的构造是无参数, 可以不写, 如果父类没有无参数的构造,必须写super

    static关键字

    1. 数据共享
    2. 使用类名 . 变量名去访问  /  使用实例化对象的方式去访问
    3. 优于对象产生
    4. 在静态方法不能使用this
    5. 使用类名 . 方法名去调用静态方法

    final关键字

    1. 被final修饰的变量不可以改变 , 最终的变量又称为常量
    2. 类不可以继承
    3. 不可以重写
    4. 换句话说就是不可以变

    包和导包

    1. 包 : 其实本质就是文件夹
    2. 在代码中需要写package 包名
    3. 导包 : import 包 + 类
    4. 不需要导包 :
    5. 自己包里
    6. java.lang包下的都不需要导包

    访问权限

    1. public : 公共的 , 所有人都可以访问
    2. private : 私有的
    3. default : 包访问权限 , 在自己的包内可以随意访问

    继承

    1. 使用extends关键字
    2. 子类可以自动拥有父类私有内容外的所有内容

    重写

    1. 子类对父类提供的方法进行重新定义
    2. 子类中的方法必须和父类中的方法完全一致
    3. 父类中有多少方法,子类必须重写父类的方法

    多态

    1. 同一个对象拥有多种形态
    2. 作用  :  把不同的数据类型进行统一
    3. 对象类型转换
    4. 向上转型 : 把子类对象赋值给父类的引用 (变量)
    5. 但是会屏蔽掉子类中特有的方法

    实现

    • implements

    抽象

    1. java允许在定义方法时不写方法体
    2. 抽象方法没有方法体
    3. 抽象方法必须使用abstract关键字修饰
    4. abstract修饰方法就是抽象方法 , 同时类也变成抽象类(加上abstract)
    5. 但是抽象类中可以不包含任何抽象方法

    特点

    1. 不可以创建对象
    2. 子类继承(extends) 父类后 , 抽象的子类,必须重写父类中的抽象方法 , 才能不变成抽象子类
    3. 抽象类中也可以有正常方法
    4. 作用 : 可以强制要求子类要求的方法 , 使代码更加规范

    接口

    1. 特殊抽象类
    2. 所有的方法都是抽象方法 , 可以省略abstract
    3. interface关键字声明 , 所有的内容都是公共的, 全局静态 , 常量
    4. 定义的全局常量默认修饰为public static final
    5. 定义的抽象方法默认修饰为public abstract
    6. 接口和类只能是实现  ( implements ) 关系 (上面的抽象和类是继承extends关系)
    7. 类只能单继承 , 接口支持多实现
    8. 类可以继承一个类 , 实现多接口
    9. 接口一样具有多态性 , 整合不相关内容

    object

    1. 所有类的
    2. 默认继承object
    3. 万事万物皆为对象

    equals和==

    • equals : 默认调用的是object提供的equals方法 , 判断两个对象内容是否相等
    • == : 判断两个对象内存地址是否一致 , 一般用在基本数据类型上

    toString 

    • 默认包+类 @ 地址 , 对一个对象的字符串表示形式
    • instanceof : 判断xxx对象是否是xxx类型的

    参数传递问题

    内存简单分析

    JAVA新手一枚 , 大佬勿喷, 以上的内容是学习过程中的笔记, 权当记录复习 , 具体还是要看Java的基础案例来理解      

  • 相关阅读:
    类加载器
    类加载器
    类加载器
    类加载器
    Java11新特性
    Java11新特性
    Spring Cloud Alibaba学习笔记(24)
    Java11新特性
    PyCharm Professional 2016.1 破解 激活
    pycharm最新激活码 2018 2.28 到期
  • 原文地址:https://www.cnblogs.com/facan/p/12230661.html
Copyright © 2011-2022 走看看