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

    变量分:
    局部变量
    全局变量
    -----------------------------------------------------
    变量三大特性【标识符,初始值,作用域】
    定义变量:
    语法:[访问修饰符] 数据类型 变量名
    例如:public int age;
    如何为变量赋值和取值?
    age=10;
    System.out.println(age);
    ----------------------------------------------------------
    常量:在程序运行期间不会改变
    关键字:final
    语法:[访问修饰符] [static] final 数据类型 常量名
    例如:final double PI=3.14;
    注意事项:
    1:使用final关键字定义常量
    2:常量必须有值
    3:建议常量名全部大写
    -----------------------------------------------------
    定义常量时,通常会使用static关键字修饰
    public static final int WIDTH=5;
    public final static int WIDTH=5;
    -----------------------------------------------------
    Java数据类型分类:数值类型,非数值类型
    还可以分为原始类型对象类型
    -----------------------------------------------------
    原始类型(基本类型):
    byte, short, int, long, float, double, char, boolean
    -------------------------------------------------------------------
    对象类型(引用类型)
    String, 类, 接口, 数组, 泛型, 枚举, 集合
    ---------------------------------------------------
    数值类型
    整数:
    byte:(-128---127)32b
    short:(-32768----32767)
    int:-2的31次方---2的31次方-1[32]
    long:-2的63次方---2的63次方-1[64]
    非整数:
    float:-2的31次方---2的31次方-1[32]
    float:标识符为f,例如:8.5f
    最多保留6位小数,从第7开始四舍五入
    ------------------------------------------------
    double:-2的63次方---2的63次方-1[64]
    标识符为:d,小数默认类型为double
    最多保留16位小数,从第17开始四舍五入
    非数值类型
    char
    String
    boolean
    类,接口.......
    ---------------------------------
    package:包

    ========================================================================》》

    数据类型转换
    ---------------------------------------
    自动类型提升:(小到大)
    1:bytebyte类型构成表达式时,自动类型提升到int
    2:在一个表达式里面,如果出现了int,float,double
    或者其他数值类型,自动提升到该表达式最高类型
    byte+byte>int
    int+int>int
    float+float>float
    double-double>double
    int+float>float
    int+double>double
    int+float+double>double
    int+long+double>double
    --------------------------------
    强制类型转换(大到小)
    int>byte
    float>int
    double>float>int.....
    long>int>short
    强制类型转换可能导致丢失数据
    语法:
    (目标类型)原类型
    前提:数值类型
    --------------------------------
    int->Integer
    char->Charactor
    float->Float
    double->Double
    short->Short
    long->Long
    boolean->Boolean
    byte->Byte
    ---------------------------------
    Java运算符
    赋值运算符:从右向左
    =,+=,-=,/=,%=
    算术运算符
    +,-,*,/,%,++,--
    逻辑运算符
    &&-->A and B->A,B同时为真则为真,如果A已经false,B不执行
    ||-->A or B->A,B一边为真则为真,如果A已经true,B不执行
    !-->not A->如果A是真,则转成假

    ========================================================================》》

    1:数组的概念
    在内存中连续存储多个相同类型的线性数据结构
    特点:
    A:连续存储
    B:存储的数据类型相同
    C:通过下标访问每一个数组元素,从0开始
    ----------------------------------------------------
    2:为什么要使用数组?
    基本的变量只能存储单个数据,如果要存储
    多个数据,需要定义多个变量,不便于操作
    与管理
    -----------------------------------------------------
    3:如何定义一维数组?
    基本方式:
    数据类型[] 数组名;
    数组名=new 数据类型[长度];
    其他方式
    A:数据类型[] 数组名=new 数据类型[长度];
    B:数据类型[] 数组名={值1,值1,值1....};
    C:数据类型[] 数组名=new 数据类型[]{值1,值2,.....};
    其中B,C都是在声明数组的同时进行了初始化操作
    ------------------------------------------------------------
    如何使用数组?
    赋值:数组名[下标]=值;
    取值:数组名[下标]
    注意:数组下标从0开始,最大下标为数组length-1
    例如:int[] ages={3,4,5,6,7};
    ages[0]-->3;//0最小下标
    ages[4]-->7;//4最大下标
    获取数据最大下标可以使用属性length-1
    System.out.println("ages数组最大下标:"+(ages.length-1));

    ========================================================================》》

    1:对象的概念
    现实中具有特定属性行为的所有实体
    都是对象
    一切皆对象
    要研究一个对象,从对象拥有的属性方法开始
    实体---->对象
    特征---->属性
    行为---->方法
    ------------------------------------------
    2.类的概念
    具有相同属性共同行为的一组对象的集合
    -----------------------------------------
    类是从一系列对象中抽取共同点而产生的
    一种逻辑上的概念
    -----------------------------------------
    类和对象之间的关系
    1:类是对象的模板,集合【定义了所有对象的共同特征和行为】
    2:对象是类的一个具体实现
    --------------------------------------
    如何创建对象?
    类 对象名=new 类();
    ---------------------------------
    Object类--->所有类的根类
    toString();
    ---------------------------------
    注意:
    1:类的成员属性和方法必须由对象来使用
    2:类的成员属性可以被类的成员方法直接调用
    ---------------------------------
    类里面所有非static修饰的属性和方法
    都是成员属性和成员方法
    ----------------------------------
    同一个类中,静态属性和静态方法在任何
    地方可以直接使用,不需要构建对象

     ========================================================================》》

    1:封装的概念
    将事物包装起来,隐藏事物的实现细节即为封装
    2:为何需要封装?
    A:封装将事物统一收集,便于事物的管理
    B:封装将事物细节进行隐藏,限制了事物的访问
    3:有哪些地方体现了封装?
    电脑主机箱,教室,包,类
    -------------------------------------------------------
    在Java中,针对每一种基本数据类型,都提供了
    一个封装类来进行对这些基本类型的管理和操作
    int-->装箱-->Integer-->拆箱-->int
    char-->装箱-->Charactor
    float-->Float
    double-->Double
    byte-->Byte
    boolean-->Boolean
    short-->Short
    long-->Long
    -----------------------------------
    定义类的属性时,如果直接暴露所有属性是不合理
    也不安全的,为此,我们需要对属性进行封装
    隐藏具体细节,即保证了合理性,也利于程序安全
    --------------------------------------
    如何将属性封装起来?
    将类中属性私有化,提供公有的方法访问这些私有的属性
    [特点:不能直接访问属性]
    私有化:只能自己独自享用
    公共方法:谁都可以用
    -----
    Java中提供了一组访问修饰符来限制事物的访问
    public 公共的 能被所有地方访问
    private 私有的 只能被同一个类访问
    protected 受保护的 同一个包可以访问,不同包的子类可以访问
    [default] 默认的 同一个包可以访问
    --------------------------
    Java三层范围
    A:同一个类
    B:同一个包
    C:不同包

     ========================================================================》》

    一:什么样的方法是构造方法?
    1:方法名类名相同
    2:没有返回类型[void也是一种返回类型]

    二:构造方法有什么作用?
    初始化类的成员变量
    【当实例化一个对象时,为这个对象的属性赋于初始值】

    三:如何调用构造方法?
    使用关键字new
    new Student();代表调用不带参数名称为Student的构造方法
    new Student("abc",23);代表调用带两个参数名称为Student的构造方法
    在一个类中,可以出现多个名称相同,但是参数不同
    的构造方法。

    四:this关键字
    this代表当前对象的一个引用
    this关键字不能在静态(static)方法里面使用
    ---------------------------------------------------
    在Java中,同一个类不允许出现相同的方法
    什么样的方法是相同方法?
    1:方法名相同,2:参数相同[参数的个数,类型,顺序]

     ========================================================================》》
    一:什么叫方法的重载?
    一个类中出现多个方法名相同参数不同的方法———
    我们称之为方法重载普通方法和构造方法都可以重载

    二:方法的重载有什么好处呢?
    1.提高程序的灵活度
    2.有利于后期项目的维护与管理
    3.符合软件设计中的开闭原则

    三:什么样的几个方法我们称之为方法的重载?
    1.同一个类
    2.方法名相同
    3.参数不同(个数,类型,顺序)

     ========================================================================》》

    1:继承的概念
    父类的特征属性传递给子类,我们称之为子类
    继承父类。
    2:什么样的关系才能满足继承?
    A:两个类之间满足is a的关系
    B:两个类之间存在层次关系
    3:使用继承有什么好处?
    write once,only once:写一次,只写一次
    提高了代码的复用性
    4:Java中使用什么关键字实现两个类之间的继承?
    extends
    -------------------------------------------------
    * 1:父类 对象名=new 父类();自己能调用自己的方法和属性
    * 2:子类 对象名=new 子类();可以调用自己特有方法和属性,也能调用继承到的方法和属性, 如果子类和父类出现相同方法,采用就近原则调用子类里面的方法

    * 3:父类 对象名=new 子类();
    * 调用属性和方法时,先看父类有没有,如果没有,直接出错
    * 如果父类有,则看子类有没有对这个方法进行改变,如果
    * 有,则使用子类的,如果没有,则使用父类的
    --------------------------------------------------
    方法的重载:overload(多个并存)
    方法的重写:override(覆盖)
    ---------------------------------
    什么叫方法的重写?
    【在子类中,子类对父类中继承到的方法的改变称之为方法的重写】
    方法重写的标准
    1:父类与子类之间
    2.重写的方法要求(方法名、参数、返回值类型)和被重写方法一致
    3.重写的方法要求访问修饰符要(大于或等于)被重写的方法
    例如:父类中有一个sayHello方法
    void sayHello(String){
    }
    子类重写父类中sayHello方法应该有如下形式
    A:
    void sayHello(String){
    }
    B:
    public void sayHello(String){
    }

    --------------------------------------------------

    this:当前对象的引用
    super:当前对象的父类对象引用
    当在子类中需要调用父类的方法和属性时,可以用
    super关键字调用
    ----------------------------------------------------

    两个类一旦建立继承关系,当实例化子类时
    默认先调用父类中一个不带参数的构造方法
    实例化一个父类对象,然后再实例化子类对象
    ------------------------------
    super()方法用来调用父类的构造方法
    例如:super()调用父类不带参数的构造方法
    super("abc")调用父类带一个字符串类型参数的方法
    super("bac",23)调用父类带两个参数的构造方法
    super()必须是在子类构造方法(第一行)调用

  • 相关阅读:
    VSS與CSV區別
    办公室中节约时间
    C#中用Smtp發郵件
    关于分层结构的感悟(轉)
    Visual Studio.Net 技巧(轉)
    常用數據庫訪問方式比較
    Winows部署中一些內容說明
    适配器模式(Adapter Pattern)(轉)
    Vistual Studio 2005 sp1補丁的詳細內容
    感情 程序 祭 【转】
  • 原文地址:https://www.cnblogs.com/popo669/p/9458070.html
Copyright © 2011-2022 走看看