Java程序设计笔记

Java程序设计

目录

Java程序设计

第一章  java语言开发环境

1.1工具篇

1.2 Eclipse调整字体

第三章  Java基础

3.1 java基本数据类型

3.2关键字与标识符

3.3常数

3.4 变量

3.5.数据类型转换

3.6由键盘输入数据

4.1顺序结构

4.2 分支语句

5.1什么是数组

5.2数组赋值:

5.3一维数组

5.4二维数组

6.1类的基本概念

6.2定义类

6.3 对象的创建与使用

6.4参数的传递

第七章  java语言类的特性

7.1类的私有成员与公共成员

7.2  方法的重载

7.3构造方法

7.4静态变量

2.1static:★★★★ 关键字(掌握)

2.2静态代码块(理解):

2.3实例初始化块(理解)

3.内部类(理解)

10.1  java语言的输入输出

输入字节流:

输出字节流:

输入字符流:

输出字符流:

流的操作规律:

转换流

对象流

11.1线程的概念

自定义线程

第二章 泛型与容器类

12.1 泛型

12.2容器

一     飞机大战

代码词解释

变量

面向对象

变量

方法

代码

第一章  java语言开发环境

1.1工具篇

通常用eclipse和idea两款工具来做java开发;

1.2 Eclipse调整字体

1. 打开eclipse

2. 找到Windows选项

uploading.4e448015.gif正在上传…重新上传取消

  1. 点击Windows选项最后一个选项,出现一个窗口

uploading.4e448015.gif正在上传…重新上传取消

  1.  在对话框中输入font,选择加粗字体 colors  and fonts
  2.  选择edit,再到Basics,然后拖动滚动条找到TxetFont

第三章  Java基础

3.1 java基本数据类型

整形(int,短short,长,long),浮点(float,double),字符(char),字节(byte),布尔(boolean)声明和初始化的例子如下:

public static void main(String[] args){

System.out.println("hello world!");

//1.int 整形

int a=5;

//2.short

short b=3;

//3.long 在赋值的时候在后面需要用大写的L

long l=55556565656L;

//4.float

float f=(float)55.3;

float f1=55.3F;

//5.double

double d=55.67;

char ch='a';

//7.byte 字节

byte b1=55;

//8.boolean 布尔;

boolean ="false";

}

取值范围:

uploading.4e448015.gif正在上传…重新上传取消

注意:字符串(string)不是8大基本数据类型

字符串的拼接:

/**

 *  这是第一次课数据基本类型

 * @author 

 *

 */



public class App1{

public static void main(String[] args){

String name ="马峰";

//      删删,双双(""),加加(++),填填(需要更换的标题)

System.out.println("wosnin ssad\'"+name+"\'");

}

}

3.2关键字与标识符

  1. 关键字

关键字是Java语言中被赋予特定含义的一些单词,他们在程序中有着不同的用途,因此java语言是不允许用户对关键字赋予其他的含义。Java语言定义的关键字如下(注意:都是小写):

uploading.4e448015.gif正在上传…重新上传取消

  1. 标识符

含义

标识符是用来表示变量名、类名、方法名、数组名和文件名的有效字符序列。标识符要满足如下规定:

  1. 标识符可以由字母、数字和下划线(-),美元符号($)等组合而成
  2. 标识符必须以字母、下划线或美元符号开头,不能以数字开头

3.3常数

常量存储是在程序中不能被修改的固定值,即常量是在程序运行的整个过程中保持其值不改变的量。Java语言中的常量也是有类型的,包括整型、浮点型、布尔型、字符型和字符串型。

  1. 整型常量

整型常量可以用来给整型变量赋值,整型常量可以采用十进制,八进制或十六进制表示。

整型常量按照所占的内存长度又可以分为一般整型常量和长整型常量。

  1. 浮点型常量

浮点型常量表示的是可以含有小数部分的数值常量。根据占用内存长度的不同,可以分为一般浮点(单精度)长度和双精度浮点常量两种。

  1. 布尔型常量

布尔型常量也称为逻辑型常量,包括true和false,分别代表真和假。

  1. 字符型常量

字符型常量是用一对单引号括起来的单个字符。如‘a’,‘9’。字符可以直接是字母表中的字符,也可以是转义符。

  1. 字符串常量

字符串常量是用双引号括起来的一串若干个字符(可以是0个)。字符串中也可以包括转义符,但标志字符串开始和结束的双引号必须在源代码的同一行上。

  1. 常量的声明

常量声明的形式与变量的声明形式基本一样,只需要关键字final标识,通常final写在最前面。例如:

Final int MAX=10;

Final float PI=3.14f;

3.4 变量

在程序中使用变量的值大多是需要经常变换的数据,用常数值表示显然是不够的。因此,每一种计算机语言都使用变量来存储数据,变量的值在程序运行中是可以改变的,使用变量的原则是“先声明后使用”,即变量在使用前必须声明。

  1. 变量声明格式:

一个变量由标识符,类型和可选的初始值共同定义。变量声明的格式如下:

类型 变量名[=初值]],变量名[=初值].......];

  1. 变量初始化:

在声明变量的同时也可以对变量进行初始化,即初始值。如:

int i=0;

  1. 变量的赋值

当声明一个变量并没有赋值或需要重新对变量赋值时,就需要使用赋值语句。Java语句的赋值语句同其他计算机的赋值语句相同,其格式为:

变量名=值;

下面举例说明:

byte b=55;

short s=128;

boolean t=true;

int x,y=8;

3.5.数据类型转换

Java语言的数据类型在定义时就已经确定,因为不能随意转换成其他的数据类型,但Java语言容许用户有限度地做类型转换处理,这就是所谓的数据类型转换,简称类型转换。

  1. 数值型不同类型数据的转换
  1. 自动类型转换


在程序中已经定义好的数值型的变量,若是想以另一种数值类型表示时,Java语言会在下列条件同时成立时,自动进行数据类型转换。

  1. 转换前的数据类型与转换后的类型兼容。
  2. 转换后数据类型的表示范围比转换前的数据类型的表示范围大。
  3. 转换从短到长的优先级为:

Byte→short→char→int→long→float→double

  1. 强制类型转换

如果要将长的数据类型转换成短的数据时,就要进行强制类型转换。强制类型转换格式如下:

(欲转换的数据类型)变量名

这种强制类型转换,因为是直接编写在程序代码中的,所以也称为显示转换。接过强制类型转换,将得到一个括号里声明的数据类型的数据。

3.6由键盘输入数据

  1.  Scnner使用的基本步骤
  1. 导包

import java.util.Scanner;

//导包的动作必须出现在类定义上

  1. 创建对象
Scanner sc =new Scanner(System.in);

上面这个格式中,只有sc是变量名,可以变,其他都不允许变。

  1. 接收数据
int i = sc.nextInt();

上面这个格式里面,只有i是变量名,可以变,其他的都不变。

例如:

package APP;

/**

 * 数据的输入

 * 导包

 * import java.util.Scanner;

 * 创建对象

Scanner sc =new Scanner(System.in);

 * 接收数据

 * int i = sc.nextInt();

 *

 *

 */

import java.util.Scanner;



public class APP1 {

public static void main(String[] args){

//创建对象

Scanner sc =new Scanner(System.in);

//接收对象

int i = sc.nextInt();

//输出数据

System.out.println("i:"+i);

}

}
  •   流程控制

4.1顺序结构

顺序结构是最简单的流程控制结构。顺序结构就是程序从上到下一行一行执行的结构,中间没有判断和跳转,直到程序结束。在顺序结构中程序里面的语句将按照他们书写的先后顺序依次执行。

顺序结构执行流程图:

uploading.4e448015.gif正在上传…重新上传取消

例如:

package APP;



public class www {

public static void main(String[] args){

System.out.println("开始");

System.out.println("语句1");

System.out.println("语句2");

System.out.println("语句3");

System.out.println("结束!");

}



}

4.2 分支语句

4.2.1  if条件语句

if语句格式 1:

uploading.4e448015.gif正在上传…重新上传取消                                                                        

执行流程:

  • 首先计算关系表达试的值
  • 如果关系表达式的值为true就执行语句体
  • 如果关系表达式的值为false就不执行语句体
  • 继续执行后面的语句内容

例如:

package APP;



public class www {

public static void main(String[] args){

System.out.println("开始");

//定义两个变量

int a =10;

int b=20;

//需求  判断a和b的值是否相等,如果相等,就输出a=b;

if(a==b){

System.out.println("a=b");

}

int c=10;

if(a==c){

System.out.println("a=c");

}

System.out.println("结束");

}



}

 if语句格式2:

uploading.4e448015.gif正在上传…重新上传取消

执行流程:

  • 首先计算关系表达式的值
  • 如果关系表达式的值为true就执行语句体1
  • 如果关系表达式的值为false就执行语句体2
  • 继续执行后面的语句内容

例如:

package APP;



public class dfdfsgs {

public static void main(String[] args){

System.out.println("开始");

// 定义两个变量

int a=5;

int b=7;

//需求: 判断a是否大于b;如果是,就输出a>b;如果不是就输出ab){

System.out.println("a>b");

}else{

System.out.println("a

if语句结构体3:

uploading.4e448015.gif正在上传…重新上传取消

执行流程:

  • 首先计算关系表达式1的值
  • 如果值为true就执行语句体1;如果为false就计算关系表达式2的值
  • 如果值为true就执行语句体2;如果为false就计算关系表达式3的值
  • .................
  • 如果没有任何的关系表达式为true,就执行语句体n+1。
  •   数组结构

5.1什么是数组

什么是数组?

数组是存储在一个连续的内存块中的元素集合。

数组中的每个元素必须是相同的数据类型,并且通过索引进行区分。数组中的第一个元素的索引为0。 

数组相当于一个容器,之前我们也学习了基本类型的变量,也可以看成一个容器,但是之前的容器,我们发现只能保存单个的值,不能解决复杂的问题。但是数组也有缺陷,数组只能放入同一类型的数据在数组中。

为什么要用数组?

①单一值类型变量有时候很难满足应用程序的设计要求。

②数组类型变量可以同时存储多个同类型基础数据类型变量或对象。

1.声明一个数组变量;

语法:

数据类型[] 数组变量名;//推荐

数据类型 数组变量名[];

例如:

int[] sums;或 int sums[];

2.使用new关键字初始化数组,并指定数组的大小。

语法:

数组类型 []数组变量 = new 数组类型[数组长度];

例如:

int [] sums = new int[20];

再赋值: sums[0]=1;

int [] sums=new int[]{1,2};创建长度为2的int数组对象,同时赋初始值

3.声明并赋值方式

int[] x={1,2,3,4,5};

4.访问数组:通过变量名[] 的方式访问。 

int [] sums = new int[20];

sums[0] = 1;

sums[1] = 2;

…….

sums[19] = 20;

为了给20个元素赋值,就需要20条语句。显然,用for循环赋值更方便。

for(int i = 0; i < 20; i++){

  sums[i] = i + 1;

}

5.数组的长度:

①因为数组对象的内存空间是连续的。所以在分配空间的时候必须知道数组的长度。而一旦分配好后就不能修改了。

②在使用访问数组元素时,特别要注意,不要超出数组所分配的空间。否则会出现运行时异常:ArrayIndexOutOfBoundsException(演示)

③Java语言的数组与其它语言的数组的不同之处在于:Java中的数组是对象。这样做的好处之一为:Java中的每个数组都有一个length属性来代表数组的大小,可以极大地减少数组访问越界的可能性。 

5.2数组赋值

因为数组的大小是固定的,所以在使用数组时,经常不得不创建一个更大或更小的数组,然后将已存在的数组的内容复制到新的数组中。

①创建一个新数组,然后使用for循环挨个拷贝(演示)

int [] sums;

sums=new int[10];

int[] sums2={1,2,3,4,5};

for (int i = 0; i < sums2.length; i++) {

sums[i]=sums2[i];

}

for (int i = 0; i 

②System类中的静态方法arraycopy()。(演示)

public static void main(String[] args) {

int [] arr ={1,2,3};//源数组

int [] arr2 = {0,0,0,0,0};//目标数组

//用System类里的方法拷贝数组的元素;参数依次为:源数组/原数组的起始位置/目标数组/目标数组的起始位置/拷贝元素个数

System.arraycopy(arr, 0, arr2, 0, 3);

for (int i = 0; i < arr2.length; i++) {

System.out.println(arr2[i]);

}

}

③用Arrays类中的copyOf方法

public static void main(String[] args) {

int [] arr ={1,2,3};//源数组

// 用Arrays工具类里的方法:第二个参数为新数组的长度,可以大于原数组,没有的值使用默认值

int[] copyOf = Arrays.copyOf(arr, 6);

for (int i = 0; i < copyOf.length; i++) {

System.out.println(copyOf[i]);

}

}

5.3一维数组

package edu.class2;

import java.util.Arrays;

public class TEXT {

public static void main(String[] arg) {

/**

 * 一维数组

 */

String str="61";

//1.声明数据

String[] strs;

//2.分配空间

strs = new String[3];

//3.赋值

strs[0]="cc";

strs[1]="bb";

/**

 *  for循环在知道起始值和终止值是使用最佳

 */

//把数组打印一下

//打印数字的方式 Assays.tostring(数组名称)

System.out.println(Arrays.toString(strs));

}

}

5.4二维数组

我们学习了一维数组。其实我们可以看成一维数组就是一个袋子。这个袋子只能放同类型的东西。二维数组怎么来想?其实二维数组,就可以当成在袋子外边再套一个袋

一维数组语法:【元素类型】[ ] 数组名称 = new 【元素的类型】[数组大小]

二维数组的语法:【元素类型】[ ][ ] 数组名称 = new 【元素类型】 [行数] [列数]

例如:

一维数组:int[] a = new int[5];

二维数组:int[][] b = new int[5][5];

三维数组:int[][][] c = new int[5][5][5];

依次类推……

定义和创建二维数组的方式:

int[][] yan = new int[10][20];

int[][] yan1 = { {1,3},{4,5,8},{88,77},{10}};

用嵌套for循环遍历二维数组:

例子:

int[][] yan = { {1,3},{4,5,8},{88,77},{10}};

    for (int i = 0; i < yan.length; i++) {

for (int j = 0; j < yan[i].length; j++) {

System.out.print(yan[i][j]+" ");

}

System.out.println();

}

练习

  1. 求一个数组中的最大/小值

uploading.4e448015.gif正在上传…重新上传取消

2.数组排序 升序/降序

    2.1冒泡排序法:

uploading.4e448015.gif正在上传…重新上传取消

package edu.class2;

import java.util.Arrays;

public class TEXT {

public static void main(String[] arg) {

/*

 * 二维数组

 */

//1.声明数组

String [][] strs;

//2.分配空间

strs =new String[2][3];

//3.赋值

strs[0][0]="我是[0][0]";

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