1.收获
今天虽然讲的东西不多,但是今天讲的都是Java语言中的基础部分,基础是很重要的,如果说基础没有打好的话,后面的内容就有可能听不懂了,因为像类,对象,方法以及数组在日后的编写过程中都会大量的应用。尽管在上课的时候,听课很困难,但是一直都是让大脑一直在顺着思路走,听的东西尽管不是理解的那麽的透彻,但是自己下来后再来理解一遍也是没有多大问题的。说实话,经过这两天的学习,慢慢自己就发现其实Java语言没有自己想象中的那磨难,只要自己认真学习与理解,还是能够弄懂的,希望自己在接下来的日子里继续加油!!!
2.技术
(1)数组的两种定义类型以及数组输入的三种方式
(2)类的定义与使用以及与对象的关系
(3)对象的定义与使用
(4)方法的定义与使用
(5)public private protected 的区别
(6)用Java语言编写的猜数字游戏
3.技术的实际应用
(1)数组的两种定义类型以及数组输入的三种方式
在Java语言中,数组的定义类型有两种,静态定义和动态定义
静态定义
例如:
int[] score={1,2,3};
String[] names={"jake","merry"};
这种定义方式是在已知数组的内容是什么,然后直接进行赋值
动态定义
例如:
float[] height=new float[5];
height[0]=165.5f;
height[1]=1702f;
这种定义方式是在不知道数组的内容是什么,是后来才知道的,但是知道数组的大小
数组输出的三种方式
//输出数组1
for(int i=0;i<4;i++){
System.out.print(number[i]+" ");
}
System.out.print("\n");
//输出数组2
for(int temp:number){
System.out.print(temp+" ");
}
System.out.print("\n");
//输出数组3
System.out.print(Arrays.toString(number));
在这三种数组输出的方式中我们常用的是第一种和第三种,在第二种方式中,number是数组,temp是一个变量,将number的每个值赋给temp进行输出。
(2)类的定义与使用以及与对象的关系
- 类:byte char boolean short int long double float
Java里面除了8大基本数据类型外 都是对象
抽象的 不实际存在的 描述同一类事物
人类:概念 抽象 不能完成具体的事情
小王:对象
车子:类
宝马:对象
奔驰:对象
奥迪:对象
类就是封装 - 对象
具体的,实际存在的,某一类的实例化
对象是new出来的
可以完成具体的事情,有内存空间的 - 类的定义与使用
定义一个类 通常情况下一个文件对应一个类
修饰符:public static final
修饰符 class 类名{
这个类的属性:成员变量
这个类的功能:方法
}
1.存什么值:成员变量
2.完成什么功能:方法
例如:
class Person {
//成员变量 定义在类的最上方
//default public protected
protected String name;
int age;
float score;
private String password;
}
(3)对象的定义与使用
创建Person类的一个对象
* 使用.来访问成员变量
* 对象一旦创建 属性变量有初值
* char '' int long short 0
* float double 0.0 byte 0
* loolean false
* 引用数据类型:对象类型的变量=null
*/
例如:
Person xw = new Person();
Person zs = new Person();
同一个类可以创建多个对象
每个对象的内空间都是独立的 (对象之间没有任何关系)
xw和zs除了都是通过同一个类创建之外
//给这个对象对应的属性赋值
xw.age = 20;
xw.name = "小王";
xw.score = 89.6f;
(4)方法的定义与使用
//方法的定义 public static final private
public void test() {
System.out.println("没有返回值 没有参数的方法");
}
public void test1() {
//this.test();
test();
}
**//没有返回值 接受一个参数**
public void test2(String name) {
}
//有一个返回值 接受一个参数
public int test3(String name) {
return 0;
}
** //有一个返回值 接受多个参数,每个参数用逗号隔开**
public int test4(String name, int age) {
return 0;
}
** //可变参数 相当于 数组**
public int test5(int... counts) {
int sum = 0;
for (int i = 0; i < counts.length; i++) {
sum += counts[i];
}
return sum;
}
方法的访问与使用
方法的使用
* 调用谁(哪个对象)的方法
* 在类里面可以直接调用在自己的方法
* 在外部必须通过对象来调用
Person list = new Person();
list.test();
//匿名对象->作为一个参数传递
int result = list.test5(new int[]{1, 2, 3, 4, 5});
(5)public private protected 的区别
通过访问权限:public private protected
- 把私有的东西封装起来 不让外部使用
- 需要给外部用 就暴露出来
- public:公共的 想用就用(内可以使用 外部可以使用)
- private(私用的 只能 自己使用 外部无法访问)
- protected(受保护的 外部(同一个包)可以调用)
(6)用Java语言编写的猜数字游戏
//产生随机数 保存随机数
//对随机数进行排序
//保存游戏者输入的4个数
//对比游戏者与系统的数给游戏者进行提示
int[] number = new int[4];
//产生随机数 保存随机数
Random r = new Random();
for (int i = 0; i < 4; i++) {
int temp = r.nextInt(10);
//判断是否重复
boolean result = contains(number, temp);
if (result == true) {
//输入i对应的位置能够得到一个不重复的数字
i--;
} else {
number[i] = temp;
}
// for(int j=0;j<i;j++){
// }
}
//进行排序
Arrays.sort(number);
System.out.print(Arrays.toString(number));
//开始游戏的部分
while (true) {
int countA=0;
int countB=0;
//提示游戏者输入数数字
System.out.print("请输入猜测的4个数:");
//保存输入的数字
Scanner guss = new Scanner(System.in);
int[] gussnumber = new int[4];
for (int i = 0; i < 4; i++) {
gussnumber[i] = guss.nextInt();
}
//对比游戏者与系统的数给游戏者进行提示
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if (number[i] == gussnumber[j]) {
if (i == j) {
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;
}