目录
前言
今天的实训大部分在写代码与讲代码,由于上传代码实在麻烦,本文只挑部分代码作为展示,其余部分以文字分析形式呈现。
1、数组
变量:在java程序中,当需要存储单个数据内容时,需要声明一个变量,声明变量的本质就是在内存空间中申请块存储单元
概念:在java程序中,当需要存储多个数据类型相同的内容时,则需要声明一个数组。声明数组的本质,就是在内存中申请一段连续的存储单元。
数组中的名词:
声明变量:数据类型 变量名 = 初始值:
数组名:数组中变量的名称
数组的长度:数组名.length;
数组中的元素:数组当中值
数组角标(下标):数组的下标从0开始 ArrayIndexOutOfBoundException:数组下标越界异常
声明数组的格式:
数据类型[] 数组名 =new 数据类型[数组的长度];
例如:定义一个长度为3的int类型的一维数组
int[] arr = new int[3]; //动态的定义数组 【推荐】
int[] arr1 = new int[]{1,2,3}; //静态的定义数组
数组的初始化:
注意:在数组声明时,如果不给数组直接赋值,那么,byte/short/int/long/的默认值为0,float和double的默认值为0.0,特别需要注意的是布尔类型的默认值为false;
char的默认值 //0或者1u0000【Unicode编码】
import java.util.Random;
/**
* @author asus
* 双色球案例
* 共7个号码,其中红球6个,范围1-33,篮球1个 范围是1-17
*/
public class DoubleColorBall {
public static void main(String[] args) {
//声明一个int类型 长度为7的一维数组,动态
int[] arr = new int[7];
//创建一个随机数对象
Random ra = new Random();
//开始摇号(向数组当中去添加值),需要先摇6红球 范围1-33
for (int i = 0; i < arr.length - 1; i++){
//红球 排除0号
arr[i] = ra.nextInt(33) + 1;
//去重
//第二个球才有可能重复,所以i至少为1,j至少为0(即大于-1)
for (int j = i - 1; j > -1; j--){
//表示号码重复了
if(arr[i] == arr[j]){
//若号码出现重复,需重新摇号
i--;
break;
}
}
}
//篮球
arr[arr.length - 1] = ra.nextInt(17) + 1;
//将数组中的双色球遍历
System.out.print("本期中奖结果:");
for (int i = 0; i < arr.length; i++){
System.out.print(arr[i] + " ");
}
}
}
2、面向对象
什么是对象?
“万事万物皆对象”
什么是面向对象?
面向对象的本质就是分析事物的特征(名词)和行为(动词)
什么是面向对象编程?
先用面向对象的思想进行分析,再用面向对象的语言进行翻译的过程
类、对象、引用的基本概念
对象:在java中,对象是指客观存在的实体
语法格式:
new 引用数据类型();
案例:
new Person();//表示创建-个Person类型的对象
类:简单来说类就是“分类",是指具有相同待征和行为的多个事物共性的抽象,在java中表现为一种引用数据类型,其中包会描述特征的成员变是和描述行为的成员方法;
语法格式:
[权限修饰符] class 类名{
类体;
}
案例:
class Person{
类体;
}
注意:通常情况下,类名的首字母要大写,当类名由多个单词构成时,每个单词的首字母都要大写;【驼峰命名法】
成员变量(特征、属性)
语法格式:
【权限修饰符】 数据类型 成员变星名 = 成员变量值;
其中等号和成员变是值可以省略,通常情况下都省略,分号不可以省略;
案例:
int age = 3;
private String name;
注意:通常情况下,成员变是名的首字母要小写,当成员变是名由多个单词构成时,从第二个单词开始,首字母要大写引用:引用类型的成员变量名,简称”引用”
语法格式: 引用数据类型 引用变量名=new引用数据类型();
案例:
Person p=new Person();//表示创建一个peraor类型的引用p指向Person类型的对象
引用的使用方法:引用名.成员变是名-成员变量值;
注意:当一个类被定义完毕后,可以使用new关键字来创建该类的对象,这个过程被称为类的实例化
类是对象的抽象,对象是类的实现。
成员方法(行为)
[权限修饰符] 返回值类型 成员方法名(形参数据类型1 形参变量名1,…, 形参数据类型n 形参变量名n){
方法体;
}
构造方法:
静态方法:
普通方法:
返回值类型
返回值:是指从方法体内向方法体外返回的数据内容
返回值类型:返回值的数据类型
要返回数据内容,可以使用return 关键字,将其返回井结束方法体。
注意:通常情况下,方法名的首字母要小写,方法名由多个单词构成时,从第二个单词开始,首字母要大写
形参列表
形式参数:是指从方法体外向方法体内,传递数据内容
形参列表:形式参数可以有多个语法
格式: 成员方法名(形参数据类型1 形参变量名1,…, 形参数据类型n 形参变量名n)
注意:如果一个方法不需要返回任何内容,那么返回值就写void,如果一个方法不需要传入任何内容则形参列表啥也不写。
成员方法体
方法体本质上就是用来描述该方法的功能;
方法的调用
语法格式:引用变量名,方法名(实参列表);
注意:实参就是对形参进行初始化提作,所以实参列表的类型,顺序,个数,必须和形参列表保持一致
方法调用的本质就是找到方法名,然后跳转到方法中,当方法体执行完毕后再跳转回来。
构造方法和方法重载
语法格式:
[权限修饰符] 构造方法名【类名】(形参列表){
构造方法体
}
注童事项
a.构造方法名与类名完全相同并且没有返回值类型,连void都不许有;
b.当使用new关键字创建对象时会自动调用构造方法来实现成员变量的初始化工作;
默认构造方法
a.当一个类中没有定义任何构造方法时,编译器会自动添加一个无参空构造方法,叫做 默认/缺省构造方法,如:Person(){ }
b.若类中出现了构造方法,则编译器不再提供任何形式的构造方法。
方法重载(会用即可)
(1)基本概念 在]ava语言中若方法的名称相同,但参数列表不同,这样的方法之间构成重载关系(Overioad).
(2)体现形式 方法重载的主要形式体现在:参数的个数不同、参数的类型不同、参数的顺序不同,与返回值类型和形参变量名无关,但建议返回值类型最好相同.
判断方法能否构成重载的核心:调用方法时能否加以区分
(3)实际意义 方法重载的实际意义在于调用者只需要记住一个方法名就可以调用各种不同的版本,来实现各种 不同
的功能。