zoukankan      html  css  js  c++  java
  • JavaOOP基础理论知识

    上册:java面相对象语法,理论性为主:
    1、对象:就是“东西”,世界万物都是对象;(对象因关注而产生)
    2、类:将对象中,具有相同属性和行为的对象集合在一起;(类是用来定义的<>就是个模版,模具;)(抽类)
    3、方法:类中对象共有的行为;(比如:人类,都要吃饭,走路)(动作,能做什么)
    3.1、方法组成:修饰符,返回值,方法名,参数,方法体;
    3.2、抽象方法:无方法体的方法(必须由abstract修饰)(然后,类也必须由abstract修饰)
    3.3、构造方法:
    3.3.1、写:不再默认调用构造,必须符合签名;
    3.3.2、不写:声明类(比如写好的Student类)(调用对象,声明一个对象new Student(),默认调用了构造方法)
    4、属性:类中对象共有的属性,本身共有的属性;(比如人类共有姓名、年龄)(名词,固有的)(全局变量)
    5、成员变量:对象的属性;
    5.1、实例变量:无static修饰:属于对象,一个对象独有一份;(能实例化)
    5.2、静态变量:static修饰:属于类,所以对象公用一份 static int a ;(不能实例化)
    5.2.1、Student stu1 = new Student(); 如果 a = 3;
    Student stu2 = new Student(); stu2中 a也等于3;
    Student stu3 = new Student(); 如果stu3.a = 4; 那么以上a 都=4;
    建议:用类名来访访问;
     
    6、类名:首字母大写,符合驼峰命名:
    7、方法签名:方法名、参数;无参,有参;
    8、方法的返回:void无返回(建议写return;);有返回值(可为:8种基本类型和引用类型,必须return;);
    9、方法的调用:
    10、this:谁调用,指的是谁;
    10.1、this.成员变量:访问成员变量
    10.2、this.方法():访问方法
    10.3、this( ):调用构造方法
    11、访问修饰符:
    11.1、public:公共的,外部使用者可以任意调用
    11.2、private:私有的,本类可用(变量属性一般为private)
    11.3、不写:默认,本类可用,同包类可用
    11.4、protected:受保护的,本类可用,子类可用,同包类可用
    12、构造方法:
    12.1、目的:对成员变量进行初始化;
    12.2、书写:没有返回类型,与类型相同;
    12.3、调用:创建对象的时候自动调用;
    12.4、若不写,这默认给一个无参构造;若写了构造,则不给无参构造;
    13、方法重载:方法名相同,参数类型不同(包括属性)(发生在编译时java-.class过程)
    14、面相对象三大特点:1.封装2.继承3.多态;
    15、封装:使用访问修饰符进行封装;
    16、继承:减少重复代码,父子类关系
    16.1、通过使用extends关键词继承;
    16.2、父类中包括子类中所有公有的属性和方法;
    16.3、子类中包括父类所以的数据;
    16.4、只能继承一个父类,但是能够实现多个接口;
    16.5、继承具有传递性质(祖宗十八代关系,直系!);
    16.6、子类的构造:先构造
    16.6.1、super();不写默认;写:必须写到第一排
    16.7、Person stu = new Student();(父类引用指向子类的对象)
    16.7.1、stu.只能点出Person类中的属性(成员变量)和方法;
    17、方法重写:重写父类的方法;具有继承或者实现关系
    17.1、重写父类方法,要求签名相同;同16.7.1、stu.能够点出的是子类的方法;(重写发生在运行时(jvm加载.class并运行的过程),看对象)
    18、静态:静态成员变量(静态变量)、静态方法、静态代码块
    18.1、静态变量:属于类,所有方法公用;
    18.2、静态方法、非静态方法
    18.2.1、静态方法:只能直接访问静态变量(一般用在不需要使用实例变量的地方)
    18.2.2、非静态方法:可以直接方法静态变量以及实例变量;(隐式this)
    18.3、静态代码块(块):一般用于加载静态资源(图片、音频、视频)
    18.3.1 使用:static{//程序开始先加载,只加载一次
     
    19、final:最终的;
    19.1、常量:static final PI = 3,14 ;可类名点出,值不可变,属于类,所以对象共有一个PI;
    20、抽象方法:abstract修饰的方法(无方法体);
    20.1、抽象类:拥有抽象方法的类:此类需要用abstract修饰
    20.2、抽象类必须被继承;
    20.2.1、子类也要写成抽象类
    20.3、抽象方法需要在子类中重写;(不重写报错)
    21、接口:就是一个标准,一个规范(比如USB接口,这个就是一个标准,都做成这样)
    21.1、定义:由interface定义(类由class定义)
    21.2、接口:就是一个特殊的抽象方法
    21.3、组成:常量和抽象方法(不能实例化)
    21.4、使用:接口被实现(implements)(继承是extends),一个类可实现多个接口,用“,”分割;
    21.5、接口中方法需要重写
    21.6、继承和实现,先继承再实现
    22、多态:向上造型
    22.1、意义:父类的引用可以指向子类的对象;虚方法调用;(认知跟多的类型)
    Person person = new Student();
    22.2、强制转型:Student student = new Student();
    student = (Student)person;//有实现或者继承关系,一般添加异常处理
    22.3、判断是否有继承或者实现关系:instanceof;
    22.4、异常处理,try.....catch
    23、内部类:定义在类的内部(当某个类只被一个类内部使用,可定义内部类,对外是不可见的)
    23.1、内部类:Inner,外部类:Outer;Inner可直接调用Outer方法和成员(包括private)
    23.2、匿名内部类:只需创建一个对象,之后就没有意义了..........
    24、内存管理:JVM管理
    24.1、垃圾回收:JVM自带,回收没有任何没有引用指向的对象;
    24.1.1、null标记:建议引用不用之后设置为null,以便被GC回收;
    24.1.2、可使用System.gc();提醒赶紧回收(具体回收时间不能确定,无法控制)
    24.1、内存:堆、栈、方法
    24.1.1、堆:保存new出来的对象,包括成员变量
    24.1.2、栈:保存所有局部变量
    24.1.3、方法区:装的是.class;类的各种信息(包括方法)保存在方法区中;
    24.2、内存泄漏:不在使用的对象,未被及时回收,太多之后会出现内存泄漏:
    24.2.1、建议:对象不被使用之后及时标记为null;
    25、包:文件夹:用来装类的
    25.1、公司:com.公司名.工程名(前三层不变).bean(放类)/test(放测试方法)
    25.2组织:org.
    25.3导包:编译后,类的全称是带了包名的(省略后必须导包);
  • 相关阅读:
    [vijos P1531] 食物链
    [USACO精选] 第二章 动态规划(一)
    python 二分法查找
    python 小试牛刀之信息管理
    C语言链表实现冒泡法排序
    [笔记]libgdx在一张pixmap上按照笔刷画图
    [libgdx]项目通过RoboVm编译到ios平台并运行的环境配置
    android中sqlite distinct中使用多个字段的方法
    libgdx游戏中的中文字体工具类
    C语言实现字符串拷贝 拷贝指定长度字符串 字符串连接
  • 原文地址:https://www.cnblogs.com/houxi1234/p/6379846.html
Copyright © 2011-2022 走看看