面向对象程序设计(Java笔记——持续更新中…)

参考书籍:Java程序设计基础(第6版)_百度百科 (baidu.com)

面向对象程序设计(Java笔记——持续更新中…)_第1张图片

第1章  Java语言概述

  • 1.1 什么是Java语

  • 什么是计算机语言
  • 是人与计算机之间通讯的语言,分成 机器语言、汇编语言、高级语言三大类。面向对象程序设计(Java笔记——持续更新中…)_第2张图片
  • 什么是高级语言
  • 是一种独立于机器,面向过程或对象的语言。C、C++JavaPython都是高级语言。面向对象程序设计(Java笔记——持续更新中…)_第3张图片
  • 面向过程的语言
  • 面向过程的语言也称为结构化程序设计语言。C、Fortran都是面向过程的高级语言。面向对象程序设计(Java笔记——持续更新中…)_第4张图片
  • 面向对象的语言
  • 是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。 C++、Java、Python都是面向对象的高级语言。
  • 面向对象程序设计(Java笔记——持续更新中…)_第5张图片                       
  • 面向对象程序设计(Java笔记——持续更新中…)_第6张图片
  •  面向对象程序设计(Java笔记——持续更新中…)_第7张图片
  • TIOBE Index - TIOBE

面向对象程序设计(Java笔记——持续更新中…)_第8张图片

  • 1.2 Java语言特点面向对象程序设计(Java笔记——持续更新中…)_第9张图片

  • 面向对象程序设计(Java笔记——持续更新中…)_第10张图片面向对象程序设计(Java笔记——持续更新中…)_第11张图片
  • 面向对象程序设计(Java笔记——持续更新中…)_第12张图片
  • 1.3 Java虚拟机

  • Java虚拟机:Java Virtual Machine(JVM)
  • 是一个虚构出来的计算机,实际的计算机只要安装JVM就可以运行Java字节码。
  • 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。
  • 面向对象程序设计(Java笔记——持续更新中…)_第13张图片面向对象程序设计(Java笔记——持续更新中…)_第14张图片
  • 1.4 Java语言的种类和结构

  • Java语言编写两种类型的程序
  • 面向对象程序设计(Java笔记——持续更新中…)_第15张图片
    package ch01;//定义该程序属于ch01包
    import java.math.*;//导入java.math类库中的所有的类
    
    public class App1 //定义类:App1
    {       //定义主方法
        public static void main(String[] args)
        { 
          double r=Math.random();
           System.out.println(r);
        }
    }
    

    面向对象程序设计(Java笔记——持续更新中…)_第16张图片 Java程序注意事项:                                                                                               

  •  Java是严格区分大小写的语言。

  • 一个程序中可以有多个类,但只能有一个类是主类。在Java应用程序中,这个主类是指包含main()方法的类。在Java小程序里,这个主类是一个继承自系统类Applet的子类。应用程序的主类不一定要求是public类,但小程序的主类一定要求是public类。主类是Java程序执行的入口点。

  • 同一个Java程序中定义的若干类之间没有严格的逻辑关系要求,但它们通常是在一起协同工作的,每一个类都可能需要使用其他类中定义的静态属性或方法。

  • 1.5 Java开发工具

  • 面向对象程序设计(Java笔记——持续更新中…)_第17张图片面向对象程序设计(Java笔记——持续更新中…)_第18张图片
  • 1.6 环境变量配置

  • 在使用Java编译与运行之前,必须先设置系统环境变量。所谓系统环境变量就是在操作系统中定义的变量。 可供操作系统上所有的应用程序使用。
  • 面向对象程序设计(Java笔记——持续更新中…)_第19张图片面向对象程序设计(Java笔记——持续更新中…)_第20张图片
  • 配置环境变量 Java_Home
  • 面向对象程序设计(Java笔记——持续更新中…)_第21张图片
  • 1.7 第一个Java程序

  • 在D:\java文件夹下创建一个文本文件,Test.java
  • 面向对象程序设计(Java笔记——持续更新中…)_第22张图片
  • 1.8 Java的运行机制

  • Java程序运行时,经过编译和运行两个步骤。
  • 以第一个Java程序为例,具体步骤如下:
  • (1)编写一个Test.java的文件。
  • (2)使用”javac Test.java”命令开启Java编译器并进行编译。编译结束后,会自动生成一个Test.class的字节码文件
  • (3)使用”java Test”命令启动Java虚拟机运行程序,Java虚拟机首先将编译好的字节码文件加载到内存,这个过程被称为类加载,它是由类加载器完成的,然后虚拟机针对加载到内存中的Java类进行解释执行,便可看到运行结果。
  • Java程序是由虚拟机负责解释执行的,而并非操作系统。 这样做的好处是可以实现跨平台性,也就是说针对不同的操作系统可以编写相同的程序,只需安装不同版本的虚拟机即可。
  • 小  结
  • 什么是Java Java
  • 语言的特点 Java的三种平台 JavaSE  JavaEE JavaME
  • Java虚拟机(JVM)
  • Java程序的种类和结构
  • Java开发工具
  •   jdk安装 系统环境变量配置
  •  Java_Home Path
  • 编写并运行第一个java程序
  • Java运行机制
  • 面向对象程序设计(Java笔记——持续更新中…)_第23张图片

第2章  Java语言开发环境  

  • 2.1 数据类型

  • 面向对象程序设计(Java笔记——持续更新中…)_第24张图片
  • 数据类型定义了数据的性质、取值范围、存储方式以及对数据所能进行的运算和操作
2.1 数据类型——整数
面向对象程序设计(Java笔记——持续更新中…)_第25张图片
2.1 数据类型——浮点型

面向对象程序设计(Java笔记——持续更新中…)_第26张图片

java浮点数运算中有两个特殊的情况:NAN、INFINITY

double:
public static final double POSITIVE_INFINITY = 1.0 / 0.0;		//正无限
 public static final double NEGATIVE_INFINITY = -1.0 / 0.0; 	//负无限

float:
public static final float POSITIVE_INFINITY = 1.0f / 0.0f; 
public static final float NEGATIVE_INFINITY = -1.0f / 0.0f; 

面向对象程序设计(Java笔记——持续更新中…)_第27张图片

2.1  数据类型——字符型

char是16位的,采取的Unicode的编码方式,可以表示汉字。取值范围‘\u0000’~’\uFFFF’

char a = 'a';     //任意单个字符,加单引号。

char a = '中';    //任意单个中文字,加单引号。

char a = 111;    //整数。0~65535。十进制、八进制、十六进制均可。输出字符编码表中对应的字符。 注:char只能放单个字符。

类型

占用字节数

默认值

最小值代码

最大值代码

byte

1

0

Byte.MIN_VALUE

Byte.MAX_VALUE

short

2

0

Short.MIN_VALUE

Short.MAX_VALUE

int

4

0

Integer.MIN_VALUE

Integer.MAX_VALUE

long

8

0

Long.MIN_VALUE

Long.MAX_VALUE

float

4

0.0F

Float.MIN_VALUE

Float.MAX_VALUE

double

8

0.0D

Double.MIN_VALUE

Double.MAX_VALUE

char

2

‘\u0000’

boolean

1

false

2.2 关键字与标识符

面向对象程序设计(Java笔记——持续更新中…)_第28张图片

面向对象程序设计(Java笔记——持续更新中…)_第29张图片

2.3 常量

面向对象程序设计(Java笔记——持续更新中…)_第30张图片

声明常量的例子:

面向对象程序设计(Java笔记——持续更新中…)_第31张图片

2.4 变量

面向对象程序设计(Java笔记——持续更新中…)_第32张图片

public class InitVar {

    public static void main(String[] args) {
// TODO Auto-generated method stub
byte a=10;
[代码1]//声明一个短整型变量b,初始化为20
[代码2]//声明一个整型变量c,初始化为30
long d=40L;
[代码3]//声明一个单精度型变量e,初始化为50F
[代码4]//声明一个双精度型变量f,初始化为60
[代码5]//声明一个字符型变量g,初始化为'A'
[代码6]//声明一个布尔型变量h,初始化为true
[代码7]//声明一个双精度型常量PI,初始化为3.14
System.out.println("字节型,a="+a);
System.out.println("短整型,b="+b);
System.out.println("整数型,c="+c);
System.out.println("长整型,d="+d);
System.out.println("单精度型,e="+e);
System.out.println("双精度型,f="+f);
System.out.println("字符型,g="+g);
System.out.println("布尔型,h="+h);
System.out.println("圆周率,pi="+PI);
    }

}

面向对象程序设计(Java笔记——持续更新中…)_第33张图片

2.5 数据类型转换

面向对象程序设计(Java笔记——持续更新中…)_第34张图片

面向对象程序设计(Java笔记——持续更新中…)_第35张图片

2.6 由键盘输入数据面向对象程序设计(Java笔记——持续更新中…)_第36张图片

2.7 运算符与表达式

面向对象程序设计(Java笔记——持续更新中…)_第37张图片面向对象程序设计(Java笔记——持续更新中…)_第38张图片面向对象程序设计(Java笔记——持续更新中…)_第39张图片

面向对象程序设计(Java笔记——持续更新中…)_第40张图片面向对象程序设计(Java笔记——持续更新中…)_第41张图片面向对象程序设计(Java笔记——持续更新中…)_第42张图片

小结

数据类型(8种)

关键字与标识符

常量(定义方式2种,final,static)

变量(定义与赋值)

数据类型转换(自动转换和强制类型转换)

由键盘输入数据(三种,掌握Scanner)

运算符和表达式

面向对象程序设计(Java笔记——持续更新中…)_第43张图片

第3章  Java语言基础

3.1 Java语言的语句和复合语句

面向对象程序设计(Java笔记——持续更新中…)_第44张图片面向对象程序设计(Java笔记——持续更新中…)_第45张图片3.2顺序结构

面向对象程序设计(Java笔记——持续更新中…)_第46张图片

3.3 分支结构(if else)

面向对象程序设计(Java笔记——持续更新中…)_第47张图片

面向对象程序设计(Java笔记——持续更新中…)_第48张图片面向对象程序设计(Java笔记——持续更新中…)_第49张图片

面向对象程序设计(Java笔记——持续更新中…)_第50张图片

面向对象程序设计(Java笔记——持续更新中…)_第51张图片

面向对象程序设计(Java笔记——持续更新中…)_第52张图片

面向对象程序设计(Java笔记——持续更新中…)_第53张图片面向对象程序设计(Java笔记——持续更新中…)_第54张图片

3.4 循环语句

面向对象程序设计(Java笔记——持续更新中…)_第55张图片

面向对象程序设计(Java笔记——持续更新中…)_第56张图片

面向对象程序设计(Java笔记——持续更新中…)_第57张图片

面向对象程序设计(Java笔记——持续更新中…)_第58张图片

三种循环的方法,比较区别, 编程时到底有哪种循环有时会取决于程序员的喜好。

3.4 循环语句(多重循环)

面向对象程序设计(Java笔记——持续更新中…)_第59张图片

3.5 循环中的跳转语句(continue;break;return;)

break语句:用于结束整个循环,只能用于switch 和循环语句中;

continue语句:用于结束本次循环;在含有continue语句的循环体中,只要碰到continue 就结束本次循环,直接进入下一次循环。

return语句: return语句一般用于函数(即方法)中,用于结束方法,不是专门用于结束循环; 但 如果return放在循环体中 ,就可以结束循环 ,而且不管放在哪一层中 遇到return就结束循环。

面向对象程序设计(Java笔记——持续更新中…)_第60张图片

小结
  1. Java程序有语句构成,语句由分号”;”结尾,复合语句由大括号{}括起来。
  2. Java注解的三种方法://,/*  */,/**    */。
  3. 三种基本流程结构:顺序结构,分支结构,循环结构。
  4. 分支结构:if,if else,switch,条件表达式。
  5. 循环:while,do while,  for    
  6. 终止循环:break, continue, return

第4章  流程控制

4.1 复合语句


与c语言及其他语言相同,Java的复合语句是一整个块区为单位的语句,所以又称块语句。复合语句由开括号 “{” 开始,闭括号“}”结束。

在使用条件语句时要注意,复合语句为局部变量创建了一个作用域,该作用域为程序的一部分,在该作用域中某个变量被创建并能够使用。如果在某个变量的作用域外使用该变量,则会发生错误。

面向对象程序设计(Java笔记——持续更新中…)_第61张图片

4.2条件语句


条件语句可根据不同条件执行不同的语句,条件语句包括if条件语句和switch多分支语句。

4.2.1 if条件语句


if语句是一个重要的编程语句,用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行另一条语句。if条件语句可分为简单的if条件语句,if...else语句和if...else if多分支语句。

1.简单的if语句
语法如下:

if(布尔表达式){

        语句序列

}

句序列如果只有一条语句的话可以不加“{ }”。

可以这样写:

int a=100;            //定义整形变量a并赋值
 
if(a==100);           //判断a是否相当于100
 
System.out.print("a的值是100")    //输出

注意:虽然句序列如果只有一条语句的话可以不加“{ }”没有语法问题,但是为了增强可读性最好不要省略。

例题:判断手机号码是否存在

面向对象程序设计(Java笔记——持续更新中…)_第62张图片

流程图:

面向对象程序设计(Java笔记——持续更新中…)_第63张图片

2.if...else语句 

       在Java中,if...else语句用于根据特定条件执行不同的代码块。if语句中包含一个布尔表达式,如果该表达式的结果为true,则执行if代码块中的语句,否则执行else代码块中的语句。

if...else语句的基本语法如下:

if (condition) {
    语句序列1
} else {
    语句序列2
}

其中,condtion为一个布尔表达式,如果它的结果为true,则执行if代码块中的语句;否则执行else代码块中的语句。如果if代码块中只有一条语句,则可以省略花括号。

注意,如果if...else语句中的if代码块或else代码块只包含一条语句,则可以不使用花括号。但建议始终使用花括号,以避免出现逻辑错误。

例题:使用if...else语句校验密码

面向对象程序设计(Java笔记——持续更新中…)_第64张图片

流程图:

面向对象程序设计(Java笔记——持续更新中…)_第65张图片

3.if...else if多分支语句

if...else if多分支语句用于针对对某一件事不同情况做出不同的处理,通常表现为“如果满足某种条件就进行某种处理,否则如果满足另一种条件则执行另一种处理”。语法如下:

if(条件表达式1){
 
        语句序列1
    }
else if(条件表达式2){
        语句序列2
    }
...
else if(条件表达式n){
        语句序列n
    }

例题:使用if...else if语句实现饭店座位分配

面向对象程序设计(Java笔记——持续更新中…)_第66张图片

流程图:面向对象程序设计(Java笔记——持续更新中…)_第67张图片

4.2.2switch语句

        switch语句是一种用于处理多重分支情况的控制流语句,它可以比if-else语句更加简洁和易读。在Java中,switch语句可以用于判断一个变量的取值,然后根据取值来执行不同的代码分支。

以下是switch语句的基本语法结构:

switch (变量或表达式) {
    case 取值1:
        // 对应取值1的代码
        break;
    case 取值2:
        // 对应取值2的代码
        break;
    //...
    default:
        // 对应其他取值的代码
        break;
}

注意事项:

         1.switch语句只能用于判断某个变量或表达式的取值,不能判断某个条件是否成立。

         2.case分支的取值必须是常量表达式,不能是变量或其他非常量表达式。

         3.在case分支中可以执行多条语句,但是必须以break语句结束。如果没有break语句,则会继续执行后面的case分支,直到遇到break语句或switch语句结束。

         4.default分支可以省略,如果省略了则不会执行任何代码。

例题:使用switch语句为考试分数分级 

面向对象程序设计(Java笔记——持续更新中…)_第68张图片流程图:

面向对象程序设计(Java笔记——持续更新中…)_第69张图片

4.3循环语句 
在Java中,循环语句有三种常见的形式:

  1. while循环:当满足循环条件时,重复执行循环体中的代码块,直到不满足循环条件时结束循环。
  2. do-while循环:先执行一次循环体中的代码块,然后再根据循环条件是否满足来决定是否继续执行循环。
  3. for循环:在执行循环之前初始化一个计数器变量,然后每次循环结束时更新计数器变量,通过控制计数器变量的值来控制循环次数。for循环通常用于循环次数已知的情况下。

4.3.1while循环语句 


 在 Java 中,while循环是一种基本的循环结构,用于重复执行一段代码块,直到指定的条件不再满足为止,while循环的语法如下:

while (条件) {
    // 待执行的代码块
}

例题:计算1~1000的相加结果

面向对象程序设计(Java笔记——持续更新中…)_第70张图片流程图:

面向对象程序设计(Java笔记——持续更新中…)_第71张图片

4.3.2do...while循环语句 

do...while循环语句与while循环语句相似,也是用来重复执行一段代码,但是它有一个特点,就是无论循环条件是否为真,do...while循环至少会执行一次。

do...while循环语句的语法如下:

do {
    // 循环体
} while (循环条件);

使用do...while循环的注意点有:

1.循环体至少会执行一次,所以要确保循环体中的代码可以正确地执行一次。

2.循环条件在循环体后面,所以要注意循环条件的赋值和修改,避免陷入死循环。

3.do...while循环与while循环的区别在于循环条件的判断顺序,do...while循环先执行一次循环体,再判断循环条件是否为真,而while循环则是先判断循环条件是否为真,再执行循环体,因此在实际使用时要根据具体情况选择合适的循环语句。

例题:使用do...while语句进行用户登陆验证

面向对象程序设计(Java笔记——持续更新中…)_第72张图片

流程图:

面向对象程序设计(Java笔记——持续更新中…)_第73张图片

4.3.3for循环语句 

1.for语句 

Java中的for循环是一种常用的循环结构,可以方便地实现对一定次数的重复执行操作。for循环语法如下:

for (表达式1; 表达式2; 表达式3) {
    语句序列;
}

  其中,初始化语句在循环开始前执行一次,循环条件在每次循环开始前进行判断,如果为true,则执行循环体语句,执行完循环体语句后执行循环后操作,然后再次进行循环条件的判断,如此往复直到循环条件不成立时结束循环。

        for循环常用于遍历数组或集合等集合类数据结构。同时,Java中的for循环也支持多个循环变量和增量表达式的自定义设置,可以实现更加灵活的循环操作。

        需要注意的是,在for循环中,如果循环条件一开始就不满足,循环体语句不会被执行。同时,在循环体中可以使用break语句和continue语句控制循环的执行流程。

例题:使用for循环计算2~100的所有偶数和
面向对象程序设计(Java笔记——持续更新中…)_第74张图片

流程图:

面向对象程序设计(Java笔记——持续更新中…)_第75张图片

2.foreach语句

foreach语句是Java中一种简化数组或集合遍历的语法结构,也被称为增强型for循环。

它的基本语法结构如下:

for(元素类型 x:遍历对象 obj) {
    引用了x的Java语句
}

例题:使用foreach语句遍历整形数组 

面向对象程序设计(Java笔记——持续更新中…)_第76张图片

流程图:面向对象程序设计(Java笔记——持续更新中…)_第77张图片

for嵌套while嵌套do while嵌套for循环流程图 :面向对象程序设计(Java笔记——持续更新中…)_第78张图片

for嵌套while嵌套do while嵌套for循环过程:

从表达式1开始->表达式2判断条件如果为真->while判断条件,如果为真->do while的循环块->for表达式'2'循环直到为假->do while的判断条件,如果为真则继续循环do while里的for循环,如果为假->判断while条件,如果为真则执行do while的循环块,如果为假-则执行for表达式3->for表达式2的判断,如果为真则继续while循环,如果为假则结束 

4.4循环控制


Java循环控制主要通过以下语句实现:

1.break用于跳出循环,执行到该语句时,程序会跳出当前循环,不再执行后面的代码,继续执行循环之后的代码。

2.continue用于跳过本次循环,执行到该语句时,程序会跳过本次循环中后面的语句,直接进入下一次循环。

4.4.1break语句


在Java中,break语句可以用于循环或者switch语句中,用于提前结束循环或者跳出switch语句的执行。当程序执行到break语句时,会直接跳出包含该语句的循环或switch语句,并且继续执行后面的代码。

同样break也可以跳出循环体。在循环中,一旦执行到break语句,循环将会被立即终止,程序会跳出循环并执行循环后的代码。

例题:输出1~20出现的第一个偶数面向对象程序设计(Java笔记——持续更新中…)_第79张图片
 

流程图:面向对象程序设计(Java笔记——持续更新中…)_第80张图片

循环嵌套的情况下,break语句只会跳出内层循环,即只跳出一层循环 。

在Java中,要在内层循环中使用break语句跳出外层循环,可以使用带标签的break语句。语法如下:

标签名:循环体{
break 标签名;
}

带标签的break语句可以指定跳出循环,此循环可以说内层也可以是外层。

例题:使用标签让break结束外层循环面向对象程序设计(Java笔记——持续更新中…)_第81张图片

流程图:面向对象程序设计(Java笔记——持续更新中…)_第82张图片现在改一下这段代码,给外层循环加上标签,让内层循环结束外层循环再查看运行结果。

面向对象程序设计(Java笔记——持续更新中…)_第83张图片

流程图:

面向对象程序设计(Java笔记——持续更新中…)_第84张图片

4.4.2continue语句

在 Java 中,continue语句用于跳过当前循环中的一个迭代,直接进入下一次迭代。当循环体中存在多个条件判断语句时,如果某些条件不满足时需要跳过本次循环,可以使用continue语句。

continue语句的使用方法为:在需要跳过本次循环的地方使用continue 关键字,程序会立即跳过本次循环的剩余语句,进入下一次循环。

例题:输出1~20的奇数
面向对象程序设计(Java笔记——持续更新中…)_第85张图片

流程图:

面向对象程序设计(Java笔记——持续更新中…)_第86张图片

跟break一样continue也支持使用标签跳过指定循环,语法如下:

标签名:循环体{
continue 标签名;
}

若干个相同数据类型的元素按一定排序的集合。 用一个统一的数组名和一个下标来唯一地确定数组中的元素。

面向对象程序设计(Java笔记——持续更新中…)_第87张图片

面向对象程序设计(Java笔记——持续更新中…)_第88张图片

面向对象程序设计(Java笔记——持续更新中…)_第89张图片

5.2 一维数组

面向对象程序设计(Java笔记——持续更新中…)_第90张图片

面向对象程序设计(Java笔记——持续更新中…)_第91张图片

面向对象程序设计(Java笔记——持续更新中…)_第92张图片

5.3  foreach语句与数组

面向对象程序设计(Java笔记——持续更新中…)_第93张图片

5.4 多维数组

面向对象程序设计(Java笔记——持续更新中…)_第94张图片

面向对象程序设计(Java笔记——持续更新中…)_第95张图片面向对象程序设计(Java笔记——持续更新中…)_第96张图片

面向对象程序设计(Java笔记——持续更新中…)_第97张图片

5.5 字符串

在Java语言中无论是字符串常量还是字符串变量,都是用来实现的。

                                                                                                           面向对象程序设计(Java笔记——持续更新中…)_第98张图片

面向对象程序设计(Java笔记——持续更新中…)_第99张图片

面向对象程序设计(Java笔记——持续更新中…)_第100张图片

面向对象程序设计(Java笔记——持续更新中…)_第101张图片

面向对象程序设计(Java笔记——持续更新中…)_第102张图片

面向对象程序设计(Java笔记——持续更新中…)_第103张图片

小结

  1. 数组的声明和赋值

  2. 二维数组每行的长度可以不同

  3. 字符串的声明和应用

  4. ==与equals的区别

  5. 数组和字符串在内存中的存储

第6章  类与对象

6.1 类的私有成员和公有成员

面向对象程序设计(Java笔记——持续更新中…)_第104张图片

面向对象程序设计(Java笔记——持续更新中…)_第105张图片

面向对象程序设计(Java笔记——持续更新中…)_第106张图片

面向对象程序设计(Java笔记——持续更新中…)_第107张图片

6.2 方法的重载

方法的重载:在同一个类中, 允许存在一个以上的同名方法, 只要它们的参数个数或者参数类型不同即可。 方法重载特点:  

                   与返回值类型无关, 只看方法名和参数列表。

                   在调用时, 虚拟机通过参数列表的不同来区分同名方法。面向对象程序设计(Java笔记——持续更新中…)_第108张图片

6.3 构造方法 constructor

在创建对象的时候,对象成员可以由构造函数方法进行初始化。

构造方法的方法名必须与类名一样

构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。

构造方法的主要作用是完成对象的初始化工作。

构造方法不能由编程人员显式的直接调用,而要用new来调用。 在创建一个类的对象的同时,系统会自动调用该类的构造方法为新对象初始化。

构造方法可以重载,以参数的个数,类型,或排序顺序区分。

面向对象程序设计(Java笔记——持续更新中…)_第109张图片

面向对象程序设计(Java笔记——持续更新中…)_第110张图片

面向对象程序设计(Java笔记——持续更新中…)_第111张图片

面向对象程序设计(Java笔记——持续更新中…)_第112张图片

6.4 静态成员

面向对象程序设计(Java笔记——持续更新中…)_第113张图片面向对象程序设计(Java笔记——持续更新中…)_第114张图片

静态变量(属于类 也叫做类变量)和非静态变量(属于对象 对象变量)的区别?

1.调用方式不同        静态变量:对象 或者 类名去调用(推荐 类名) ; 非静态变量:只能使用对象去调用

2.内存中存在的位置不同     静态变量:方法的静态区; 非静态成员变量:堆区

3.加载的时机不同         静态变量:随着类的加载而加载(不依赖对象而创建);非静态成员变量:随着对象的创建而创建(依赖对象)

4.声明周期不同     静态变量:随着类的销毁而销毁(相当于程序结束); 非静态成员变量:随着对象的销毁而销毁

案例8:将圆柱体类Cylinder里的变量pi和num声明为静态变量

面向对象程序设计(Java笔记——持续更新中…)_第115张图片

静态方法属于整个类,被类的所有对象共享

静态方法 只能使用静态的变量和方法 。

调用静态方法 类名.静态方法() 或 对象名.静态方法()

案例9:将圆柱体类Cylinder来介绍静态方法的使用

面向对象程序设计(Java笔记——持续更新中…)_第116张图片

6.5 对象的使用

面向对象程序设计(Java笔记——持续更新中…)_第117张图片

案例11:以圆柱体类Cylinder的对象为参数进行方法调用,并说明对象的比较。

面向对象程序设计(Java笔记——持续更新中…)_第118张图片

面向对象程序设计(Java笔记——持续更新中…)_第119张图片

面向对象程序设计(Java笔记——持续更新中…)_第120张图片

第7章  Java语言类的特性

7.1 子类的创建

面向对象程序设计(Java笔记——持续更新中…)_第121张图片

面向对象程序设计(Java笔记——持续更新中…)_第122张图片

面向对象程序设计(Java笔记——持续更新中…)_第123张图片

面向对象程序设计(Java笔记——持续更新中…)_第124张图片

面向对象程序设计(Java笔记——持续更新中…)_第125张图片7.2 在子类中访问父类的成员

面向对象程序设计(Java笔记——持续更新中…)_第126张图片

7.3  覆盖 overriding

面向对象程序设计(Java笔记——持续更新中…)_第127张图片

面向对象程序设计(Java笔记——持续更新中…)_第128张图片面向对象程序设计(Java笔记——持续更新中…)_第129张图片

7.4  不可被继承的成员与最终类

面向对象程序设计(Java笔记——持续更新中…)_第130张图片

第8章  继承、抽象类、接口和枚举

8.1 抽象类和抽象方法

面向对象程序设计(Java笔记——持续更新中…)_第131张图片

8.2 抽象类的应用

面向对象程序设计(Java笔记——持续更新中…)_第132张图片

8.3 接口的定义面向对象程序设计(Java笔记——持续更新中…)_第133张图片

面向对象程序设计(Java笔记——持续更新中…)_第134张图片

8.3.1 接口的实现与引用

面向对象程序设计(Java笔记——持续更新中…)_第135张图片

8.4 接口的继承面向对象程序设计(Java笔记——持续更新中…)_第136张图片

8.5 利用接口实现类的多继承

Java只支持类的单一继承,但允许类在实现接口时呈现多重继承的特性。
示例:

package ch08; 
interface Face1{  
	final double PI=3.14; 
	abstract double area(); 
} 
interface Face2{  
	abstract void setColor(String c); 
} 
interface Face3{  
	abstract void volume(); 
}  
public class Cylinder implements Face1,Face3{  //Cylinder 类实现并继承两个接口  
	private double radius;  
	private int height;  
	protected String color;  
	public Cylinder(double r,int h){   
		radius=r;   
		height=h;  
	}  
	public double area(){   
		return PI*radius*radius;  
	}  
	public void setColor(String c){   
		color=c;   
		System.out.println("颜色:"+color);  
	}  
	public void volume(){   
		System.out.println("圆柱体体积="+area()*height);  
	}  
	public static void main(String[] args){   
		Cylinder volu=new Cylinder(3.0,2);   
		volu.setColor("红色");   
		volu.volume();  
	} 
} 

第9章  异常处理

9.1 异常处理的基本概念

面向对象程序设计(Java笔记——持续更新中…)_第137张图片

面向对象程序设计(Java笔记——持续更新中…)_第138张图片

9.2 异常处理类

面向对象程序设计(Java笔记——持续更新中…)_第139张图片

9.3 异常的处理

面向对象程序设计(Java笔记——持续更新中…)_第140张图片

面向对象程序设计(Java笔记——持续更新中…)_第141张图片

面向对象程序设计(Java笔记——持续更新中…)_第142张图片

面向对象程序设计(Java笔记——持续更新中…)_第143张图片

说明:

  1. 异常捕获的过程中做了两个判断:第一个是try程序块中是否有异常产生;第二个是产生的异常是否和catch后面的括号内欲捕获的异常类型匹配;
  2. catch块中的语句应根据异常类型的不同而执行不同的操作,比较通用的做法是输出异常的相关信息,包括异常名称、产生异常的方法名等;
  3. 在处理多异常时应该注意认真设计各catch块的排序顺序。一般地,处理较具体、较常见异常的catch块放在前面,可以匹配多异常的catch块放在后面,若将子类异常块放在父类异常块的后面,编译不通过;
  4. 当try块中的语句抛出一个异常时,后面的语句不执行;所以一般用finally来做一些善后的事情,比如关闭打开的文件等;
  5. finally块可以省略;
  6. catch块有System.exit(0)语句时,不执行finally块。

9.4 抛出异常

面向对象程序设计(Java笔记——持续更新中…)_第144张图片

面向对象程序设计(Java笔记——持续更新中…)_第145张图片

面向对象程序设计(Java笔记——持续更新中…)_第146张图片

面向对象程序设计(Java笔记——持续更新中…)_第147张图片

面向对象程序设计(Java笔记——持续更新中…)_第148张图片

9.5 自动关闭资源的try语句

面向对象程序设计(Java笔记——持续更新中…)_第149张图片

第10章 Java语言的输入输出与文件处理

10.1 Java的输入输出——流的概念

面向对象程序设计(Java笔记——持续更新中…)_第150张图片

面向对象程序设计(Java笔记——持续更新中…)_第151张图片

10.2 Java的输入输出——流类库

面向对象程序设计(Java笔记——持续更新中…)_第152张图片

面向对象程序设计(Java笔记——持续更新中…)_第153张图片

面向对象程序设计(Java笔记——持续更新中…)_第154张图片

面向对象程序设计(Java笔记——持续更新中…)_第155张图片

面向对象程序设计(Java笔记——持续更新中…)_第156张图片面向对象程序设计(Java笔记——持续更新中…)_第157张图片面向对象程序设计(Java笔记——持续更新中…)_第158张图片10.2 Java的输入输出——标准输入输出流

面向对象程序设计(Java笔记——持续更新中…)_第159张图片

10.3 使用Reader和Writer流类

面向对象程序设计(Java笔记——持续更新中…)_第160张图片

10.3 使用Reader和Writer流类

面向对象程序设计(Java笔记——持续更新中…)_第161张图片

10.4 文件的处理与随机访问面向对象程序设计(Java笔记——持续更新中…)_第162张图片

你可能感兴趣的:(我的大学笔记,java,开发语言,笔记)