数组、 类
目的
更好的掌握java语言数组的运用,同时对类有一个清晰的概念。了解什么是对象和创建对象。
技术
1.数组的定义和数组的使用
2.类的定义
3.创建对象
4.方法的定义
技术运行
- 数组的定义
//数组一旦被定义 大小就确定了,无法更改
int[] score = {1, 2, 3}; //静态
String[] names = {"jack", "merry"};
//动态 内容动态添加
float[] height = new float[5];
height[0] = 165.5f;
height[1] = 170f;
- 数组的使用
用数组输出一组随机数
//随机数
Random r = new Random();
r.nextInt(100);
//尽量不要扩大变量的作用域
int[] count = new int[10];
for (int i = 0; i < 10; i++) {
count[i] = r.nextInt(100);
}
//数组输出方式1
for (int i = 0;i<10;i++){
System.out.print(count[i]+" ");
}
System.out.println();
//数组输出方式2
for (int temp : count) {
System.out.print(temp + " ");
}
System.out.println();
//数组输出方式3
System.out.println(Arrays.toString(count));
- 定义一个类
class Person{
String name;
int age;
float score;
private String password;
};
- 创建Person类的一个对象
Person xw = new Person(); - 给这个对象对应的属性赋值
xw.name = "小王";
xw.age = 20;
xw.score = 86.5f;
System.out.println(xw.name);
System.out.println(xw.age);
System.out.println(xw.score);
- 方法的使用
调用谁(哪个对象)的方法
在类里面可以直接调用自己的方法
在外部必须通过对象来调用 - 方法的定义
// 修饰符 public static final private
public void test(){
System.out.println("没有返回值,没有参数的方法");
}
public void test2(){
//在自己的类里面可以调用这个类里面的所有资源
// this.test();
test();
}
//没有返回值 接收一个参数
public void test3(String name){
}
//有一个参数
public int test4(String name){
return 0;
}
//有多个参数 每个参数用逗号隔开
public int test5(String name,int age){
return 0;
}
//可变参数 相当于数组
public int test6(int ... counts){
int sum = 0;
for (int i = 0;i<counts.length;i++){
sum += counts[i];
}
return sum;
}
- 猜数字游戏
//猜数字游戏
class GuessNumber{
public static void main(String[] args){
//保存原始数字
int[] org = new int[4];
//保存用户猜测的数字
int[] guess = new int[4];
//产生四个随机数
Random random = new Random();
for (int i = 0; i<4;i++){
//判断是否重复
int temp = random.nextInt(10);
//判断是否存在
boolean result= contains(org,temp);
if(result){
//确保i对应的位置能够得到一个不重复的数字
i--;
}else{
org[i] = temp;
}
}
//排序
Arrays.sort(org);
System.out.println(Arrays.toString(org));
//定义一个scanner扫描仪对象
Scanner scanner = new Scanner(System.in);
//开始游戏
while (true) {
int countA = 0;
int countB = 0;
System.out.print("请输入猜测的数字");
for (int i = 0; i < 4; i++) {
guess[i] = scanner.nextInt();
}
//判断用户输入
// 1.判断是否存在
for (int i = 0; i < 4; i++) {
boolean result = contains(guess, org[i]);
if (result == true){
//数字存在
//判断位置是相同
int index = indexOf(guess,org[i]);
if(index == i){
//数字和位置都相同
countA++;
}else{
countB++;
}
}
}
if (countA == 4){
System.out.println("恭喜答对!!");
break;
}else{
System.out.println(countA+"A"+countB+"B");
}
}
}
public static boolean contains(int[] val,int obj){
for (int i = 0;i<val.length;i++){
if (val[i] == obj){
//重复了
return true;
}
}
return false;
}
/**
* 在一个数组里面查找某个对象的索引值
* @param val 数组
* @param obj 查找的对象
* @return 索引值
*/
public static int indexOf(int[] val,int obj){
for (int i = 0;i<val.length;i++){
if (val[i] == obj){
return i;
}
}return -1;
}
}
心得
通过两天的学习,总算对java有了一个初步的认识,应该能够运用java语言写一些简单的小demo了。不过在写代码的时候还是不太习惯,没有用C语言那么顺畅。今天在写代码的时候,尽量使用了快捷键,相信我会越来越熟练的。