今日目标
将之前的demo转移到Android studio上实现
学习内容
- 类:Contact[姓名 地址 email 电话号码]
java里面除了八大基本数据类型(byte char boolean short int long double float)外都是对象 抽象的 不实际存在 描述同一类实物(具有共同的属性和方法)
例如:人类->抽象的 不是就存在的 不能完成具体的事情
类就是封装 - 封装:
把私有的东西封装起来 不让外部使用
需要给外部用 就暴露出来
访问权限:public private protected
public:公共的 想用就用/内部可以使用 外部也可
private:私有 只能自己使用 外部无法访问
protected:受保护的 外部(同一个包)可以访问 - 定义一个类 通常情况下一个文件对应一个类
public static final
修饰符 class 类名{
这个类的一些属性:成员变量
这个类的功能:方法 - 对象:通过new产生
具体的 实际存在的 某一类的实例化
可以完成具体的事情->有内存空间
例如:小王:具体存在 可以使用的
同一个类可以有多个对象 - 方法 indexOf
用来判断一个字符串中时都有某个字符或者字符串,有的话就返回字符的起始位置(0表示第一个字符),没有的话就返回-1
org[i]表示从第org[i]个开始找起
int index = indexOf(guess,org[i]);
- 方法 sort
可以对基本数据类型、数组、包装类类型进行升序排序(默认为升序)
格式:Arrays.sort(数组名)
Scanner sc=new Scanner(System.in);
int num={5,4,3,2,1};
Arrays.sort(num) ;
for(int i=0;i<5;i++){
System.out.println(num[i]);}
- 方法 toString
将任何对象转换成字符串表达形式,就是用文字描述这个对象里各个变量是什么值,这个变量是什么类型的变量等
实际操作
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=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]);
System.out.println("i:"+i+" index:"+index);
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;
}
}
心得体会
同一个demo用Java比用C语言做的过程要简便得多
网友评论