zoukankan      html  css  js  c++  java
  • Java基础和面向对象

    Java基础和面向对象

    一、数据类型和运算符

    1. 标识符
    • 组成:字母、数字、下划线、$
    • 首字母:不能是数字
    • 见名知义
    • 不能是关键字(48个)

    正确的:name、name123、age、_name、$name

    错误的:1name、public、123、na%me

    标识符主要给一个元素起名字,需要符合起名字的以上4种规则。比如说,类的名字:首字母大写;变量名称:小写;方法名称:驼峰命名;数组名称、接口名称、集合名称。

    //你定义为汉字也可以,不过不推荐,因为国际语言以English为主。为了面向世界,使用字母吧。

    1. 变量:值可以改变的量

    举例:int age;     int data = 5;

    1. 常量:值确定后无法再改变的量。final
    2. 数据类型

    n  值类型(基本数据类型)

    4大类8小种:

    ²  整型:byte、short、int、long

    ²  浮点型:float、double

    ²  字符型:char     值需要被单引号包裹

    ²  布尔型:boolean  值只能是true和false

    n  引用类型

    //类型转换:占用字节少的,可以赋值为占用字节大的类型。比如可以定义:long a =5;

       double f = 1.65f ;  double  m = 90;

    默认整型是int 类别,小数型是double。Char是用单引号‘’,String使用双引号“”(英文)。

    1. 运算符

    n  赋值运算符:=

    n  算术运算符:+ - * / %

    n  逻辑运算符:&&    ||    !  ^

    True   && true = true

    False   && true = false

    True   && false= false

    False   && false= false

    True   && true = true

    False   && true = true

    True   && false= true

    False   && false= false

    True ^   true = false

    False ^   true = true

    True ^   false= true

    False ^   false= false

    ! true = false

    !   false= true

    //一般使用短路运算,为了提高计算机的运算效率。对于

    && 与运算符,第一个为false,不会计算第二个表达式;

    || 或运算符,第一个为true ,不会计算第二个表达式;

    n  关系运算符:>、<、>=、<=、==、!=

    n  自增自减:++、--

    int a = 5; a++;++a;--a;a--;

    n  三元运算符:

    只有1个:     布尔表达式 ? 表达式一 : 表达式二

    int a = 5 != 6 ? 7 : 9;     boolean result =  5==5 ? true:false;

    二、流程控制

    1. 分三种:顺序、选择、循环
    2. 选择:if – else、switch

    n  if – else:

    格式一

    格式二

    格式三

    if( 布尔表达式 ){

    }

    if(布尔表达式){

    }else{

    }

    If(布尔表达式){

    }else if(布尔表达式){

    }……{

    }else{

    }

    n  语法格式:

    switch(变量){

    case   值1:

         … …

         break;

    case   值2:

         … …

         break;

    ……

    default:

        break;

    }

    n  比较:范围比较用If-else,如果只固定的几个等值则使用switch。

    //注意break 与 return的区别。Break是退出这个循环,return是退出这个方法(函数)。

    1. 循环:while、do-while、for

    While循环:

    While(条件判断){

    程序代码

    变量发生改变

    }

    do-while循环:

    do{

    程序代码

    变量发生改变

    }while(条件判断);

    For 循环:

    For(变量;条件判断;变量变化){

    程序代码

    }

    While中主体的程序代码中,变量一定要变化,否则易成为死循环,for中变量在最后,也需要发生变化。一般是循环的步骤如下:先判断条件---执行代码----变量变化----条件判断------执行代码……

    Do-while至少会执行一次程序代码。

    三、数组

    1. 存储数据类型相同的一组数据。
    2. 语法: 数据类型[]  变量名 = new 数据类型[长度];

    举例:int[] scores = new int[20];

    1. 注意事项:

    n  数组的长度一旦确定后,就无法改变

    n  数组的四个要素:数组名、下标、元素、长度

    n  数组中的每一个元素都有1个下标相对应

    n  数组的下标从0开始

    n  数组的长度:数组名.length

    1. 示例

    int[]   scores = new int[5];

    //赋值

    scores[0]   = 5;

    Scanner   input = new Scanner(System.in);

    For(int I   = 0; I < scores.length; i++){

        Scores[i] = input.nextInt();

    }

    //取值(循环)

    For(int   item : scores){

        System.out.println(item);

    }

    四、类和对象

    1. 对象:万事万物皆对象
    2. 类:具体相同属性和方法的对象的集合
    3. 语法: 访问修饰符+类名
    4. 注意事项

    n  类是抽象的,对象的具体的。

    n  类名首字母大写

    n  实例化类的对象:   类名  对象名 = new 类名();

    1. 方法

    语法:访问修饰符  返回值类型  方法名(参数列表){… …}

    示例:public  void  test(){

    }

           调用:对象名.方法名()进行调用

    1. 静态方法

    定义:被static修饰的方法就是静态方法。

    调用:类名.方法名()进行调用

    1. this 调用当前类里面的方法或属性,使用this
    2. super调用父类里面的方法或属性,使用super
    3. 方法的重载

    定义:在一个类中,存在方法名相同,参数列表不同的多个方法。

    注意:参数列表不同(参数个数不同、参数类型不同、参数顺序不同)

    10.构造方法

    特点:构造方法的方法名和类名相同;没有返回值类型。

    //构造方法就是在构建此类对象的时候使用,可以提高创建对象的效率。

    五、封装和继承

       封装:将属性的访问修饰符设置为private ,同时添加get获取以及set设置方法的过程,成为封装。

       封装主要是减少子类对父类属性的随意修改,可以在set方法中添加一些判断条件,控制子类对象对其进行修改的操作。

       继承就是子类对象可以通过.方法名/属性名 的方式获取父类的public修饰的属性或方法,而父类不能调用子类特有的属性或方法。即逻辑上子类对象可以调用父类,父类对象不能调用子类。

    六、继承和多态

    多态:同一父类的多个子类对象,在执行父类方法的时候,可以输出不同的值,就叫多态。

       多态的前提是方法的重写和继承的特性。

      子类重写了父类的方法,所以在执行子类对象的时候,就会使用与父类不同的代码,从而输出不同的结果。

    如果没有重写父类方法,就执行父类方法中的代码。

    //多态的方法,一般设置为static类型,方便调用,可以减少创建对象的代码

    Public static (返回值类型) 方法名(父类 参数){

    参数.父类的方法名/属性;

    参数.父类的方法名/属性;

    }

    Main(){

    方法名(子类对象1);

    方法名(子类对象2);

    ……………

    }

    七、抽象类和接口

    抽象方法:public abstract 方法名();

       一般不好表达的方法,或者对于子类都有此行为,但是每一种子类此种行为方式都不一样时候使用。

        即所有的子类都需要重写父类的方法中的一部分的时候,就可以使用抽象方法。

        其目的是为了最终使用的时候,使用多态,减少程序的代码量。

    包含抽象方法的类,肯定是抽象类。抽象类可以不包括抽象方法,但不包括抽象方法一般不建议创建抽象类。

    接口:一组抽象方法的集合就叫做接口。

    接口中都是抽象方法,是为了解决子类只能继承一个父类,而子类中需要不同方法的情况。

    一个子类可以有多个接口,从而扩宽了抽象方法的应用面。

    接口的定义 :

    访问修饰符 + interface+接口名{

    抽象方法1;

    抽象方法2;   //接口中的抽象方法不需要加abstract

    }

    继承接口:

    访问修饰符  类名 + implements+接口1.接口2,…..{

    }

    类继承抽象类,就必须实现抽象类中的所有抽象方法。

    类继承接口,就必须实现接口中所有的方法。

    八、异常与调试

         定义:异常是指在程序运行过程中所发生的不正常的事件,它会中断正在运行的程序。

         关键字:try、catch、finally、throw、throws

     

        try:执行可能产生异常的代码

        catch:捕获异常,编写处理异常的代码

        finally:无论是否发生异常,都要执行的代码块

     

        throw:手动抛出异常

        throws:声明方法可能要抛出的各种异常

     

        1.try代码块有可能出现异常也可能不会出现异常

        2.只有try代码块出现异常时,catch代码块才会执行

        3.try中的代码块一旦出现异常,那么出现异常后面的代码不会继续执行。

        4.ex.printStackTrace()方法用于向控制台打印输出异常堆栈信息(在执行哪一行代码时出现什么异常)

        5.如果出现的异常类型和catch块中异常的类型匹配,那么才会执行catch块中的代码,否则不执行。

        6.所有异常类均直接或间接继承自类Exception

        7.多重catch  在try代码块后,包含了多个catch代码块

        8.多重catch时,Exception一定要放在最后

        9.System.exit(1);表示强制性退出系统。

        10.try-catch-finally结构中try语句块是必须的,catch、finally语句块均可选,但两者至少出现之一

        11.try-catch块中存在return语句,是否还执行finally块,如果执行,说出执行顺序

     

    常见的异常

        1.ArrayIndexOutOfBoundsException   数组下标越界异常

        2.NullPointerException             空指针异常

        3.NumberFormatException            数字格式化异常

        4.ArithmeticException              算术运算异常

        5.Exception                        所有异常的父类

  • 相关阅读:
    CI框架源码学习笔记1——index.php
    angular.js的post数据方式
    腾讯2018年9月秋招前端笔试题--编程题
    有赞2018年9月秋招一面
    2018阿里秋招笔试编程题
    css3 flex布局
    tomcat启动后,无法访问,报404
    2018网易前端实习面试总结
    2018网易前端实习笔试编程题总结
    set用法
  • 原文地址:https://www.cnblogs.com/huyang1988/p/5040519.html
Copyright © 2011-2022 走看看