查看: 485|回复: 0

[JAVA] 面向对象小小总结

[复制链接]
发表于 2020-2-3 12:14:22 | 显示全部楼层 |阅读模式
面向对象概述

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



面向对象过程

分析解决问题所必要的步骤, 使用函数把步骤实现, 再依次调用就可以了.

类与对象 ->封装


  • 类的界说
  • 对象创建与使用
  1. 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会自动赋予初始值
  • 类的设计
  1. public class Student{   //设计一个门生类        String name ;  // 界说门生姓名属性        int age ;  //界说门生年龄属性      public void introduce() {           //方法中打印属性name和age的值             System.out.println("大家好, 我叫"+name +"我本年" +age +  "岁了");}      }
复制代码
类的封装

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

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

构造方法


  • 界说
  • 方法名与类名相同
  • 在方法名的前面没有返回值类型的声明
  • 在方法中不能使用return语句返回一个值, 但是可以单独写return语句作为方法的结束
  1. 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关键字


  • 访问本类中的成员变量
  • this和super是区分子类与父类重名的部分
super关键字


  • 获取父类中的内容
  • 必须写在第一行, 调用父类中的构造方法
  • 假如父类的构造是无参数, 可以不写, 假如父类没有无参数的构造,必须写super
static关键字


  • 数据共享
  • 使用类名 . 变量名去访问  /  使用实例化对象的方式去访问
  • 优于对象产生
  • 在静态方法不能使用this
  • 使用类名 . 方法名去调用静态方法
final关键字


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

包和导包


  • 包 : 其实本质就是文件夹
  • 在代码中必要写package 包名
  • 导包 : import 包 + 类
  • 不必要导包 :
  • 自己包里
  • java.lang包下的都不必要导包

访问权限


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

继承


  • 使用extends关键字
  • 子类可以自动拥有父类私有内容外的所有内容
重写

  • 子类对父类提供的方法举行重新界说
  • 子类中的方法必须和父类中的方法完全一致
  • 父类中有多少方法,子类必须重写父类的方法


多态

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

  • implements


抽象

  • java答应在界说方法时不写方法体
  • 抽象方法没有方法体
  • 抽象方法必须使用abstract关键字修饰
  • abstract修饰方法就是抽象方法 , 同时类也变成抽象类(加上abstract)
  • 但是抽象类中可以不包含任何抽象方法
特点


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


接口


  • 特殊抽象类
  • 所有的方法都是抽象方法 , 可以省略abstract
  • 用interface关键字声明 , 所有的内容都是公共的, 全局静态 , 常量
  • 界说的全局常量默认修饰为public static final
  • 界说的抽象方法默认修饰为public abstract
  • 接口和类只能是实现  ( implements ) 关系 (上面的抽象和类是继承extends关系)
  • 类只能单继承 , 接口支持多实现
  • 类可以继承一个类 , 实现多接口
  • 接口一样具有多态性 , 整合不干系内容
object

  • 所有类的根
  • 默认继承object
  • 万事万物皆为对象

equals和==


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


  • 默认包+类 @ 地点 , 对一个对象的字符串表现情势
  • instanceof : 判断xxx对象是否是xxx类型的
参数传递问题
内存简朴分析

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

相关技术服务需求,请联系管理员和客服QQ:2753533861或QQ:619920289
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

帖子推荐:
客服咨询

QQ:2753533861

服务时间 9:00-22:00

快速回复 返回顶部 返回列表