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                        所有异常的父类

 

posted @ 2015-12-11 23:25  胡洋  阅读(176)  评论(0编辑  收藏  举报