JAVA基础知识学习笔记

第一章:揭开Java神秘面纱
本章要点:
            1.掌握下载、安装JDK
            2.掌握开发环境变量的配置
            3.学会编写第一个java程序
1.掌握下载,安装JDK
            1.1:进入http:www.oracle.com
            1.2:通过百度
            1.3:安装JDK
2.掌握开发环境变量的配置
            2.1:常用的DOS命令
                        2.1.1:cd命令,进去当前盘符下的路径 cd\(进入当前盘符的根目录) cd 路径
                        2.1.2:切换盘符,例如D:
            2.2:新建环境变量“JAVA_HOME”,存的值是JDK的安装目录“JAVA\jdk”,找到“path”,将路径继续添加,用;隔开
            2.3:classpath的配置,新建环境变量“classpath”,存的值是“.;%JAVA_HOME%\lib”
            2.4:学会编写第一个Java程序
      • public:公共的
      • class:用来声明一个类
      • Hello:类名(必须和文件的名字一致)                        
      • static:静态的
      • void:无返回值
      • main:主函数的名字
      • String[]:字符串数组
      • args:变量的名字
      • System:系统类
      • Out:系统类的一个变量
      • println(“”):打印的方法
      • 程序区分大小写
    • 第一行:创建一个类,类名是Hello
    • 第二行:创建主函数,程序从这里开始
    • 第三行:输出语句
  • 运行程序的步骤:
    • 打开DOS命令窗口
    • 进入需要运行的java文件的路径
    • 通过javac命令编译java文件,例如 javac Hello.java  ,会生成一个Hello.class文件
    • 通过java命令运行class文件,例如 java Hello
  • 注释:1、单行注释://代码
    • 2、多行注释:/*代码*/
    • 3、文档注释:/**代码*/
 
第二章:最流行的Java开发工具--Eclipse
本章要点:
  • Eclipse概论
  • 掌握Eclipse的安装、设置与启动方法
  • 熟悉Eclipse的开发环境
  • 使用Eclipse创建Java程序
  • 在Eclipse中调试Java程序
1.认识Eclipse开发工具
            1.1、Eclipse的概述
                        它是IBM花巨资开发的IDE集成环境(Integrated Development Environment),是给程序员提供了一个一个优秀的Java开发环境
            1.2、Eclipse的安装、设置与启动
                        下载Eclipse的网址:
                        汉化的两种方式:
                                        1.在线安装:
                                        2.离线安装:
                        建议读者使用英文版。右键快捷方式,在目标后拼接 -nl "EN"可以切换到英文(exe后面)
                                                        右键快捷方式,在目标后拼接 -nl "ZH"可以切换到中文
            1.3、Eclipse工作台
2、使用Eclipse开始工作
            2.1、步骤:
                    1、创建项目
                    2、创建包
                    3、创建类
                    4、运行
                可以使用快捷方式进行提供开发效率
                代码提示:alt+/
3、在Eclipse中调试程序
            3.1、步骤
                    1、设置断点
                    2、打开调试界面 快捷键F11
                    3、观察变量的变化
                    4、通过F5,F6控制程序的走向
                    5、关闭调试界面,去掉断点
4、高手点拨
            4.1、解决英文windows7下Eclipse的中文界面切换
            汉化之后,右键快捷方式,在目标后拼接  -nl “ZH”可以切换到中文
 
第三章:初识庐山真面目———Java程序要素概览
本章要点:
  1. 掌握Java程序的组成
  2. 掌握Java程序注释的使用
  3. 掌握Java中的标识符和关键字
  4. 了解Java中的变量及其设置
  5. 了解程序的检测
  6. 掌握提高程序可读性的方法
 
1.一个简单的例子
           简单了解Java程序的框架
2.感性认识Java程序
            2.1认识Java程序的框架
                        2.1.1、大括号、段、及主体
                                      一个类中,main只有一个,是作为所有程序的入口开端
            2.2认识标识符
                        规则:只能是由字母、数字、下划线和$组成,并且不能以数字开头,还要避免关键字。
                        规范:标识符,有很高的阅读性
            2.3关键字
                        在Java中有特殊意义的单词:比如public class void static String System...
            2.4认识注释
                        三种:
                                    单行注释://代码
                                    多行注释:/*代码*/
                                    文档注释:/**代码*/
            2.5认识变量
                        2.5.1、变量的声明:
                                                数据类型 变量名;
                                                数据类型 变量名 = 数值或表达式(将变量的声明和赋值合为一体)
                                  变量的赋值:
                                                变量名 = 数值或表达式
            2.6数据类型
                        分为两类:
                                      1、基本数据类型:
  • 整型:
    • 字节                        (byte)
    • 短整型                    (short)
    • 整型                         (int)
    • 长整型                     (long)
  • 浮点
    • 单精度                    (float)
    • 双精度                  (double)
  • 字符
    • 用来存储一个字符    (char)
  • 布尔
    • 用来存储真假对错,里面有2个值,true、false                       (boolean)
                                      2、引用数据类型:
                                                        字符串                        (string)
                                                        类                               (class)
                       数据类型转换
  1. 自动转换:等号左侧必须兼容等号右侧(左大于右)(小范围可以自动复制给大范围)
    • byte b = 10;int num=b;
    • double d = 10;
  2. 强制转换:当等号左侧类型低于右侧时候,对右进行强制转换,转换之后,左侧必须兼容等号右侧
    • double d = 10.1;
    • int a =(int)d;
                2.7认识运算符和表达式
                             算数运算:
  • 加:+
  • 减:-
  • 乘:*
  • 除:/
  • 取余:%
                2.8认识类
                              Java程序是由类所组成的
                2.9输入以及输出
  • 输入和输出是以内存为参照物的
  • 根据方向分为输入流和输出流
  • 输入流:System.in(标准输入),通常代表键盘输入
  • 输出流:System.out(标准输出),通常输出到终端显示器
  • 错误流:System,err(标准错误输出),通常将错误信息输出到终端显示器
3、程序的检测
                3.1语法错误
                3.2语义错误
4、提高程序的可读性
                通过必要的注释以及缩进
5、高手点拨
                注意字符半角和全角之分,中文之分
                使用ctrl+shift 或 ctrl+space切换到中文
                使用shift+space切换圆角和半角
 
第四章:最常用的编程元素——常量与变量
本章要点:
                1.掌握变量和常量的声明方法
                2.掌握变量的命名规则
                3.掌握变量的作用范围
                4.掌握常量和变量的应用技巧
 
1.常量
                1.1、声明常量
  • 解释:所谓常量,就是固定不变的量,一旦被定义并赋值后,它的值就不能再被改变。
  • 语法:final  数据类型  常量名称 =  值;(静态加static,写在main方法外的代码,想被main方法调用)
  • 规范:常量名称通常使用大写字母,例如Pi,YEAR等。
  • 规则:常量名称复合标识符的要求,只能使用字母、数字、_、$这4种组成,不能以数字开头,不能使用关键字。
2.变量
                2.1、声明变量
  • 解释:变量是利用声明的方式,在内存中的某块内存区域保留下来供程序的使用,其内的值是可变的。
  • 语法:
  1. 变量的定义:数据类型  变量名;         例如 int  num;
  2. 变量的赋值:变量名 = 值;           例如 num=10;
  3. 变量的使用                                   例如 syso(num);(快捷键设置)
     注意:1和2可以合起来写                    例如 int num = 10;     
 
            变量的使用(基本数据类型),其实就是取出变量对应的内存块里的值进行使用
            规则:名称符合标识符的要求,只能使用字母、数字、_、$这四种组成,不能以数字开头,不能使用关键字。
                2.2变量的作用范围
            按作用范围进行划分:变量可以分为成员变量和局部变量
            1、成员变量
                        在类体重定义的变量为成员变量。他的作用范围为整个类,也就是说,这个类中都可以访问到定义的这个成员变量
            2、局部变量
                        在一个函数(方法)或代码块中定义的变量称为局部变量
                        特点:局部变量在方法或代码块被执行的时候创建,在方法或代码块结束时被销毁 
            成员变量可以和局部变量重名,使用时调用满足就近原则,即代码块间 
 
3、高手点拨
            1、Java中作用范围是禁止嵌套的,而在c/c++中则是允许的
            
 
第五章:不可不知的数据分类法--数据类型
 
本章要点:
  1. 掌握整数类型的分类
  2. 掌握浮点数据类型的分类
  3. 掌握字符类型数据
  4. 掌握布尔类型数据
  5. 熟悉基本数据类型默认值的意义与使用方法
 
  1. 数据类型的意义
                    主要分为:基本数据类型和引用数据类型
  1. 整数类型
  • 整数类型和对应的包装类
  • byte   Byte
  • short  Short
  • int      Integer
  • long   Long
  1. 浮点型
  • 小数默认是double类型
  • 浮点型和对应的包装类
  • float       Float
  • double   Double
  1. 字符型
                ASCII:美国标准信息交换码,将英文中所有字母和一个符号对应一个数字
                GBK:是将中文所有汉字和符号对应一个数字,也兼容ASCII
                Unicode:将所有国家的编码表融合到一个表中
  1. 布尔类型
                 只有两个值:true 和 false
  1. 数据类型转换
    1. 自动类型转换
  • 小范围赋值给大范围
    1. 强制类型转换
      • 大范围赋值给小范围
  1. 基本数据类型的默认值
    • 当成员变量会有默认值
    • 局部变量没有
 
  • byte       (byte)0
  • short      (short)0
  • int          0
  • long       0L
  • float       0.0f
  • double   0.0d
  • char       ' '或\u0000
  • boolean false
  1. 高手点拨
    • 除法“/”
    • 两种情况
      • 整型/整型         结果是取整数
      • 除数和被除数至少有一个都浮点型,那结果就是浮点型,简单理解为:普通的除法
  • C/C++语言和Java语言布尔的区别
  • 在前者中只要不是零的数,都可以认为“true”,而仅把零作为“false”
  • 在后这种布尔类型只是“true”和false,跟数字无关
 
第六章:最重要的编程部件--运算符、表达式与语句
本章要点:
  1. 掌握各种运算符的用法
  2. 掌握各种表达式的用法
  3. 掌握表达式与云算法的关系
  4. 掌握表达式中数据类型的转换技巧
1.运算符
        1.1、赋值运算符
                    用“=”表示,将等号右边的值赋值给左边的变量
        1.2、一元运算符
                    +       正号                +x
                    -        负号                -x
                    !      NOT,非         !true
                    ~      取补码              ~x
                    ++    变量值自增1     x++
                    --      变量值自减1     x--
        1.3、算术运算符
                    +            加
                    -             减
                    *             乘       
                    /             除
                    %            取余
                        
             +有两种使用方式:如果+前后是数字,则为加法,结果是数字和;                            如果+前后至少一个为字符串,则为拼接符号,结果是拼接后的字符串
             /有两种使用方式: 如果/前后都是整型,则将得到的结果取整;                                   如果/前后至少一个浮点型,则得到的结果也是浮点型,就是普通的除法
        1.4、逻辑运算符
                    逻辑运算符只对布尔类型操作数进行运算并返回一个布尔类型数据
                    &&,&       与       两个操作数同时为真,结果才为真,否则,结果为假
                    ||,|             或       两个操作数同时为假,结果才为假,否则,结果为真
                    !               非       结果是与操作数相反的布尔值
2.表达式
                表达式是由常量、变量或是其他操作数与运算符所组合而成的语句
        2.1、算术运算符
                算术表达式用于数值的计算。它是由算术运算符和变量或常量组成,其结果是一个数值
        2.2、关系表达式
                关系表达式常用于程序判断语句中,由关系运算符组成,其运算结果为boolean类型
        2.3、逻辑表达式    
               用逻辑运算符将关系表达式或 
        2.4、赋值表达式
                赋值表达式由赋值运算符和操作数组成,赋值运算符用于给变量赋值
                将右侧的值赋值给左侧变量
        2.5、表达式的类型转换
                    大原则:
  1. 占用字节较少的数据类型转换成字节数较多的数据类型
  2. 字符类型会转换成int类型
  3. int类型会转换成float类型
  4. 表达式中若某一个操作数的类型为double,则另一个操作数也会转换成double类型
  5. 布尔类型不能转换成其他类型
3、语句
                语句室友表达式组成
                3.1、语句中的空格
                        在必要的地方加上空格,提高阅读性和规范性
                3.2、空语句
                        空语句是由一个分号组成的语句,不建议使用
                3.3、声明语句
                        语法格式一般为:<声明数据类型><变量1>。。。<变量n>;
                3.4、赋值语句
                        通过赋值符号表示,将右侧的值赋值给左侧的变量
4、高手点拨
                4.1、&和&&、||和|的关系是怎么样?
                            a&b    a&&b
                            a|b      a||b
                            普通的&和|连接的判断条件都会执行,最后得出结果
                            &&和||连接的判断条件,如果根据前面的判断条件已经能得出最后的结果,那后面的判断条件就不会再执行
                4.2、递增以及递减运算符
                            ++在前,先加1,再执行其他操作
                            ++在后,先执行其他操作,再加1
                            --同理
                4.3、位运算的技巧
                            任何数与0000 0001(二进制)进行或(|)运算后,第一位将变成1,与1111 1110(二进制)进行与(&)运算后,第一位将变成0.
 
 
第七章:程序执行方向——程序控制结构
                
本章要点:
        1、掌握程序结构的设计方法
        2、掌握选择结构的类型与方法
        3、掌握循环结构的类型与方法
        4、掌握循环的跳离语句的运用方法
1、程序逻辑
            程序的结构包含以下三种
    1. 顺序结构
    2. 选择结构
    3. 循环结构
  1. 顺序结构
                按照书写的顺序执行
  1. 分支结构
                根据给定的条件进行判断,决定执行某个分支程序段
  1. 循环结构
                在给定条件成立时,反复执行某个循环
2、选择结构
            条件分支
                    if语句
                    if else语句
            开关分支
                    switch语句
            2.1、if语句
                        if(判断条件){
                                语句
                        }
           2.2、if。。。else语句
                        if(判断条件){
                                语句
                        }else{
                                语句
                        }    
          2.3、if。。。else if。。。else
                        if(条件判断1){
                                语句块1
                        }else if(条件判断2){
                                语句块2
                        }
                        。。。多个else if()语句
                        else{
                                语句块n
                        }
          2.4、多重选择-switch语句
                        switch(表达式){
                                case 值1:
                                            语句块1;
                                            break;
                                case 值2:
                                            语句块2;
                                            break;
                                case 值n:
                                            语句块n;
                                            break;
                                default:
                                            默认语句块;
                                            break;
                        }
                        switch的表达式类型为整型(long除外),字符型,枚举类型,在JDK1.7之后也支持string
3、循环结构
            3.1、while循环
                        while(判断条件){
                                  代码块
                        }
                        特点:先判断再执行

 
 
 
 
 
 
 
 
 
 
 
 
 

第9章:面向对象设计--类和对象
 
本章要点:
            1、了解类和对象的相关概念
            2、掌握声明以及创建类和对象的方法
            3、掌握对象的比较方法
 
1、理解面向对象程序设计
            OOP
            1.1、结构化程序设计
                        早起程序设计,大量使用全局变量和GOTO语句
                        结构化程序设计:顺序、选择、循环这三种节本控制结构来构造(强调程序阅读性,面向过程)
                        编程基本通过写不同的目的的函数/过程实现,故称为面向过程:核心问题是数据结构和算法的开发和优化        
            1.2、面向对象程序设计简介
                        属性表示对象的数据,一般为名词
                        行为表示对象的功能,一般为动词
                        类是实物的表述,对象是事物的具体
                        面向对象编程达到了软件工程的三个主要目标:重用性、灵活性、扩展性
            1.3、面向对象程序设计的基本特征
                        3个主要特征:封装性、继承性、多态性
                        封装性:隐藏内部细节,目的是将对象的设计者和对象的使用者分开,使用者不必知晓其行为实现细节,只需用设计者同的消息来访问该对象
                        继承性:继承性是子类共享父类数据和方法的机制。目的支持系统的可重用性,提高系统的可扩展性。
                        多态性:对象根据所接收到的消息而做出的动作。同一个消息被不同的对象接受时可以产生完全不同的行为,这种想象称为多态。
            1.4、面向对象编程和面向过程变成的比较
                        面向过程:程序=算法+数据结构
                        面向对象:程序=对象+消息传递
                        面向对象是由面向过程发展而来。二者都有重要性。二者都在某些领域具有重要性
                        面向对象虽然有缺点,但是利大于弊。
2.面向对象的基本概念
            2.1、将具有相同属性(成员变量)和相同行为(成员方法)的一组对象称为类
            2.2、对象是类的实例化后的产物。“万物皆对象”
            2.3、类是某一类实物的描述,而对象是实际存在的该类实物的个体。
3.类的声明与定义
            3.1、类的声明
                        [访问修饰符] class 类名称{
                                    //类的成员变量
                                    //类的成员方法
                        }            
                        访问修饰符:
                                    public:共有的。本类,本包内的类,包外类也可以访问
                                    private:私有的。本类可以访问
                                    protected:介于public和private之间。和集成有关。本类,子类可以访问
                                    默认模式:本类,本包内可以访问
                                    final:最终的,无法改变的。不能继承修改。
                        类名称:只能是字母,数字,_ ,$组成,不能以数字开头,不能使用关键字,一般用大写开头。
           3.1、类的定义
                        类的成员变量的定义:
                                    访问修饰符  数据类型  属性[=值];
                        类的成员方法的定义:
                                    访问修饰符  返回值的数据类型  方法名称(参数1,参数2。。。){
                                        程序语句
                                    }             
4.类的属性
            语法:[访问修饰符]  属性类型  属性名  [=默认值];
            修饰符:public,private,protected,static,final其中之一。static和final可以组合起来修饰属性(static属性为静态代码块,可以用来初始化成员变量,是该类最先运行的语句块,称为类方法,比构造方法还早)
            属性类型:任何类型(基本数据类型,引用数据类型)
            属性名:只能是字母,数字,_ ,$组成,不能以数字开头,不能使用关键字。一般首字母小写,后面的单词首字母大写。
5.对象的声明与使用
        5.1对象的声明:
            语法:类名 对象名 = new 类名([形参]);
        5.2对象的使用:
            语法:
                        调用属性的语法:对象名.属性名
                        调用方法的语句:对象名.方法名([形参])
        5.3匿名对象
            匿名对象是指没有名字的对象。适用场合:创建对象只使用了一次
        5.4对象的比较
            两种方式:
                        1、使用“==”:比较的是两个对象的内存地址
                        2、使用equals()方法:比较的是两个对象的内容。比较两个字符串内容是否一样,使用此方法
        5.5对象数组的使用
6.高手点拨
        1.栈内存和堆内存的区别
                栈内存:
                            栈是由编译器自动分配和释放的
                            存放基本数据类型的变量,指令代码,常量和对象的引用地址
                            优点:存取速度快,数据可以共享
                            缺点:存在栈中的数据大小与生存期必须是确定的,缺乏灵活性
                堆内存:
                            堆是一个程序运行动态分配的内存区域
                            存放构建对象时所需要的内存
                            堆内存在使用完毕后,是由垃圾回收机制进行(隐式)回收
                            优点:动态的分配内存大小
                            缺点:存取速度慢
        2.面向过程变成与面向对象编程的感性认识
 
第10章:重复调用的代码块--方法
本章要点:
                1、掌握方法的定义
                2、掌握方法的使用
1、方法的基本定义
                修饰符  返回值类型  方法名(参数列表){
                                            方法体
                                            [return  返回值]
                            }
2、方法的使用
                1、创建对象
                2、对象名、方法([参数])
                this代表当前对象,区分形参
3、方法中的形参与实参
                形参隶属于方法体,是方法的局部变量
                在调用方法时,实参和形参在数量上、类型上、顺序上必须保持一致
4、方法的重载
                三要素:
                            必须在同一个类中
                            必须方法名相同
                            必须参数列表不同(个数不同,类型不同,个数不同类型也不相同)    
                注意:重载的定义与返回值无关
5、构造方法
                构造方法就是在每一个类中定义的,并且是在使用new关键字实例化一个新对象的时候默认调用的方法。
                构造方法的功能是对新创建的对象的成员变量赋值
                语法结构:
                            访问修饰符  类名([参数列表]){
                                            功能代码
                            }
                注意:
                            1、构造方法的名次必须和所属类的类名一致
                            2、构造方法没有返回值,也不可以使用void
                            3、构造方法也可以被重载
                            4、构造方法不能被static和final修饰
                            5、构造方法不能被继承,子类使用父类的构造方法需要使用super关键字。
                规定:如果某一个类中,没有显示的定义一个构造方法,那系统会默认给其一个无参并且方法体是空的构造方法
6、在方法内部调用方法
                1、如果调用的是本类的方法,直接使用方法名([实参])
                2、如果调用的是其他类的方法,还是需要创建
                3、如果调用的方法是静态的,可以通过类名,方法名([实参])或者接口名.方法名([实参])
(快速封装,shift+alt+s,getters and setters)
7、方法的递归调用
                是指方法直接或间接调用自身的一种操作
                注意递归的出口
8、代码块
                格式:
                                {
                                            //语句
                                }
                1、普通代码块
                                在方法名后或方法体内用一对“{}”括起来的数据库就是普通代码块
                2、构造代码块
                                不在方法体内,仅位于类的范围内,执行多次。作用在于初始化成员变量
                3、静态代码块
                                执行一次,作用在于初始化成员变量
                4、同步代码块
                                线程时有详细讲解
 9、方法和数组
                引用传递:传递的是地址,指向的是同一块内存空间,任何一方修改了内容,那另一方指向的内容也是修改后的
                值传递:传递的是数值,传递后,两方没有任何关系了。
10、与数组有关的操作方法
                1、数组的克隆
                                克隆对象返回的是一个新的对象,而不是已有对象的引用
                                克隆对象与new操作符是有区别的,克隆对象是拷贝某个对象的当前信息,而不是对象的初始化信息
‘            2、数组的排列
11、高手点拨
                1、Eclipse中自动生成Getet和Seter。快捷键slt+shift+s->generate getter and setter
                2、Eclipse中自动生成构造方法。快捷键slt+shift+s->generate constructor using fileds
 
1、枚举简介
 
2、自定义枚举
 
3、Java中的枚举
                3.1、语法:enum  枚举名{枚举值1,枚举值2,枚举值3,枚举值4...};
                3.2、在switch语句中使用美剧
4、枚举类和枚举关键字
                4.1、values方法:返回枚举值组成的数组
                4.2、枚举类:Enum
                4.3、枚举类(Enum)与枚举关键字(eunm)的联系
                                valueOf(Class<T>enumType,String name): 返回带指定名称的指定枚举类型的枚举常量
5、类集对枚举的支持
                5.1、EnumMap
                5.2、EnumSet
6、深入了解枚举
                6.1、枚举的构造方法
                6.2、枚举的接口
                6.3、在枚举中定义抽象方法
7、高手点拨
                7.1、使用枚举时注意事项
                                1、枚举的构造方法的访问权限修饰符不能是public,protected,只能是private,默认
                                2、最后枚举值要加;
                7.2、枚举类不可以被继承
 
第12章:类的封装、继承和多态
                1、掌握封装的基本概念和应用
                2、掌握继承的基本概念和应用
                3、掌握多态的基本概念和应用
                4、熟悉super关键字的使用
                5、熟悉对象的多态性
1、面向对象的三大特点
                1.1、封装
                                    隐藏内部的实现细节,对外提供一些公共的访问方式
                                    目的是增强安全性和简化编程
                1.2、继承
                                    将子类共有的成员放到父类中,子类继承父类,子类只定义自己特有的成员
                                    目的是提高程序的复用性,易于扩展项目
                1.3、多态
                                    分为两类:
                                                    1、方法的多态性,体现 在方法的重载与覆写
                                                    2、对象多态性,体现在父、子对象之间的转型上
 
2、封装的实现
                2.1、访问修饰符
                                    公共的public:                 可以被所有类访问
                                    私有的private:               只有在当前类中可以访问,外部类不可以访问
                                    受保护的protected:       当前包内的类可以访问,子类也可以访问
                                    默认default:                  当前包内可以访问
                封装的步骤:
                                    1、将成员私有化
                                    2、对外提供公共的访问方式
3、继承的实现
                语法格式:    
                                    class  子类名  extends  父类
                限制:
                                    1、java中不允许多重继承,但可以使用多层继承
                                    2、父类私有成员,不能被子类继承使用
                                    3、子类在进行实例化时,首先调用父类的构造方法,然后调用子类的构造方法
                                    4、被final修饰的类不能再被继承
4、深入认识类的继承
                1、子类对象实例化的过程
                2、super关键字的使用
                                1、调用父类的构造方法
                                2、调用父类的成员
                3、使用private限制子类的访问
5、覆写
                5.1、方法的覆写:子类定义了与父类相同的方法,使用子类对象调用此方法时,会调用子类的方法。子类重写的父类方法的访问权限修饰符不能严于父类,并且被覆写的方法不能为static
                5.2、属性的覆写
6、多态的实现
                1、多态的基本概念
                2、方法多态性
                                利用方法重载实现
                3、对象的多态性
                4、隐藏static
7、高手点拨
                1、方法的重载与覆写有什么区别
 
  重载 覆写
英文单词 overload override
定义
方法名相同
参数列表不同
 
在同一个类中
方法名相同
参数列表相同
返回值类型相同
在两个(直接或间接)父子类中
权限 不受权限控制 子类覆写父类方法的权限不能严于父类
                2、this和super的区别
                                this:先从本类找成员,本类找不到再到父类中找;this([实参])调用的是本类的构造方法;表示当前对象
                                super:不查询本类的成员,直接在子类中调用父类的成员;super([实参])调用的是父类的构造方法;表示当前类的父类对象
                3、final的使用  
                                1、final修饰的类不能被继承
                                2、final定义的方法不能被子类覆写
                                3、使用final修饰的变量是常量(一旦被赋值,不能更改值),一般名字全部大写
 
第13章:抽象类与接口
知识要点:
            1、熟悉抽象类的使用
            2、掌握抽象类的基本概念
            3、掌握抽象类实例的作用
            4、掌握接口的基本概念
            5、熟悉Java8中接口的新特征
            6、熟悉接口实例的应用
1、抽象类
            规则:
                        1、抽象类和抽象方法必须用abstract关键字来修饰
                        2、抽象类不能直接实例化
                        3、抽象方法只需要声明,不需要实现
                        4、含有抽象方法的类必须是抽象类,抽象类的子类必须覆写所有的抽象方法,否则这个子类还是抽象类
2、接口
            1、关键字是interface
                        接口中的成员变量:默认是public  static  final
                        接口中的成员
            3、接口的作用-制定标准
            4、接口的作用-设计模式
            5、接口的作用-代理设置
3、抽象类和借口对比
            抽象类:
                        语法:abstract  class  类名称
                        组成:常量、全局常量、变量、构造方法、普通方法、抽象方法
                        权限:可以使用各种权限
                        使用:子类通过extends关键字继承一个抽象类
                        关系:一个抽象类可以实现多个接口
                        设计模式:模板设计模式
                        局限:单继承局限
            接口:
                        语法:interface  接口名称
                        组成:全局变量、默认方法、抽象方法
                        权限:都是public权限
                        使用:子类通过implements关键字来实现多个接口
                        关系:一个接口不能继承抽象类,但可以继承多个接口
                        设计模式:工厂设计模式,代理设计模式
                        局限:没有单继承局限
4、高手点拨
            1、继承抽象类与继承普通类的区别
                        子类必须覆写继承抽象类的抽象方法,而可以选择性的覆写普通类的方法
            2、接口、抽象类、类、对象的关系
            3、接口和抽象类的应用
 
第14章:关于类的专题研究
本章要点:
            1、掌握Object类的基本概念
            2、熟悉内部类的使用
            3、了解匿名对象的使用
            4、掌握方法的运用技巧
            5、掌握关键字的作用域使用技巧
1、种类鼻祖---Object
            所有类直接或间接的继承Object
            1.1、toString()返回该对象的字符串表示,一般需要覆写
            1.2、equals(Object obj)指示其他某个对象是否与此对象“相等”,一般需要进行覆写
            1.3、hashCode()返回该对象的哈希码值
            1.4、使用Object接受任意引用数据类型对象(类,接口,数组)
2、内部类的定义格式如下:
            访问修饰符  class  外部类名称{
                        访问修饰符  class  内部类名称{
                        
                        }   
            }
            1、非静态成员内部类
            2、静态成员内部类
            3、局部内部类
            4、匿名内部类(子类(实现类)只使用一次)
3、匿名对象
            只使用一次
4、this关键字的使用
            this代表当前对象(就是指调用类中的方法或属性的那个对象)
5、使用static定义属性
            static修饰的成员是共享的,又称为类成员
            静态代码块里只能调用静态成员
            静态成员可以使用类名(接口名),静态成员
            当类被载入时,静态方法块被执行,并且只执行一次,作用初始化变量
6、final关键字的作用
            final修饰的类不能被继承
            final修饰的方法不能被子类重写
            final修饰的变量只能赋值一次
7、instanceof关键字的使用
            可以用来判断一个类是否实现了某个接口,也可以判断一个实例对象是否属于一个类
            一般是配合向下转型用的
8、高手点拨
            1、匿名类使用注意事项
                        只能继承一个类或一个接口
                        不能定义构造函数
                        不能定义静态对象
                        局部内部类对匿名内部规则生效
                        不能是抽象的
 
第15章:存储类的仓库--Java的常用类库
本章要点:
            1、掌握Java类库的相关概念
            2、熟悉System类和Runtime类
            3、熟悉Math和Random类
            4、了解常见的类
1、API概念:
            应用程序编程接口
2、基本数据类型的包装类
            2.1、基本书籍类型包装秤对应的包装类,扩展功能
            2.2、装箱和拆箱
                            装箱:值类型(包括基本数据类型)-->引用数据类型
                            拆箱:引用数据类型-->值类型
            2.3、基本数据类型与字符串的转换
3、System类和Runtime类
            3.1、System类
            3.2、Runtime类
4、日期操作类
            4.1、日期类
            4.2、日期格式类
5、正则表达式
6、Math类和Random类
7、大数字操作类
            7.1、大整数操作类:BigInteger
            7.2、打小数操作类:BigDecimal
8、Integer类
9、Boolean类
10、Byte类
11、高手点拨
            包装类型不能随便使用关系运算符比较大小
          “==”比较的是引用数据类型的地址
 
第16章:解读Java中的String类
本章要点:
            1、掌握字符串的相关概念
            2、掌握String类
1、String类
            1.1、声明方式:
                        String  变量名;
            1.2、两种实例化方式
                        String  s = “abc”
                        String  s =  new  String(“abc”)
            1.3、字符串内容的比较
            1.4、字符串常量是String类的匿名对象
            1.5、两种字符串实例化方式的区别
            1.6、字符串一旦声明则不可以改变
            1.7、String类常用的方法
2、高手点拨
            1、String  s  =  new  String(“java”);
                    创建了两个对象,一个“java”,一个是指向“java”的引用对象s              
            2、堆和栈的区别
                    堆内存是栈内存的子集
                    栈内存的速度仅次于寄存器
                    而栈内存的数据可以共享
                    堆内存运行时可以动态分配空间
                    速度较慢,且不共享
                    new对象在堆内存里
 
第17章:对象的引用与传递
本章要点:
            1、掌握引用传递的方法
            2、熟悉对象的克隆
            3、熟悉反射机制
            4、了解继承设计模式
1、引用传递的初步了解
            引用传递,传递的是地址
2、引用数据类型的传递
            值传递,值传递数值,传递完毕后,再无任何关系
            引用传递,传递的是地址,两个变量地址相同,一个改变,会影响另一个
3、引用传递与现实生活的联系
4、集成设计模式
5、对象的克隆           
            对象克隆得到的副本与此对象的内容一致,但对象地址不同
            如何克隆?
                        1、要克隆的对象所在的类必须实现 借口Cloneable
                        2、在类中覆写父类Object的clone()方法
6、反射机制
7、高手点拨
            1、对象引用相等
            2、java中的垃圾回收机制
 
第18章:包及访问权限
本章要点:
            1、掌握包的基本概念
            2、掌握import语句的使用
            3、了解JDK中常见的包
            4、熟悉类成员的访问控制权限
            5、了解Jar命令的使用
 
1、报的概念及使用
            包的声明语法:package  名称
2、类成员的访问权限
3、命名规范
4、打包工具-Jar命令的使用
5、构造方法私有化-单例模式
6、多例模式
7、高手点拨
                                    
第19章:异常的捕获与处理
本章要点:
            1、掌握异常的基本概念
            2、掌握对异常的处理机制
            3、熟悉如何在程序和方法中抛出异常
            4、了解如何编写自己的异常类
1、异常的基本概念
            try{
                        //可能出现异常的代码
            }catch(异常类  对象名称){
                        //异常发生时处理的代码
            }catch(异常类  对象名称){
                        //异常发生时处理的代码
            }...
            finally{
                        //一定运行到的代码
            }
2、异常类的处理流程
            异常分为两大类:
                        Error:JVM出错,用户无法在程序中处理这种错误
                        Exception:
3、throws关键字的使用方式
4、throw关键字(new实例)
5、异常处理的标准格式
6、RuntimeException            
            是那些可能在java虚拟机正常运行期间跑出的异常的超类
7、编写自己的异常类
            必须继承Exception类或其子类,来表示可以描述异常
8、高手点拨
            1、异常类型的继承关系(Throwable)
            2、RuntimeException和Exception的关系(前者是一个后者子类)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
第22章:齐头并进完成任务--多线程
本章要点:
            1、了解进程与线程
            2、掌握实现多线程的方法
            3、熟悉线程的状态
            4、熟悉线程操作的方法
            5、熟悉线程同步的方法
            6、熟悉线程间通信的方法
 
1、感知多线程
            进程:进行的程序,操作系统资源分配单位。
            线程:是进程中的执行路径,进程中的功能,是靠进程中的多个线程执行的
2、体验多线程            
            实现多线程的两种方式
                        1、将类生命为Thread子类。该子类重写Thread类的run方法
                        2、声明实现Runnable接口的类。该类然后实现run方法、
3、线程的状态
4、线程的一些操作方法
5、多线程的同步
            同步代码块
                        synchronized(对象){
                                        //要同步的代码
                        }
            如果要完成同步,此处的对象,必须是所有要同步的线程共享的一个对象
 
 
 
 
posted @ 2019-01-14 10:15  STK0210  阅读(125)  评论(0编辑  收藏  举报