一、实例化
1.概念
在面向对象的编程中,通常把用类创建对象的过程称为实例化,其格式如下:
如 Date date=new Date();就是用日期类创建了一个日期的对象,就叫对象的实例化。
多数语言中,实例化一个对象就是为对象开辟内存空间,或者是不用声明,直接使用new 构造函数名,建立一个临时对象
public class A{
public static void main(String[] args){
B b = new B();//实例化
b.print();
}
}
class B{
public void print(){
System.out.println("Hello,World!");
}
}
2.实际应用
import java.util.Scanner;
/*
1.Scanner的实例化Scanner scan = new Scanner(System.in);
2.调用Scanner类的相关方法,来获取指定类型的变量
*/
import java.util.Scanner;
/*
1.Scanner的实例化Scanner scan = new Scanner(System.in);
2.调用Scanner类的相关方法,来获取指定类型的变量
*/
public class ScannerTest {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name=scan.nextLine();
System.out.println(name);
System.out.println("请输入你的年龄:");
int num=scan.nextInt();
System.out.println(num);
System.out.println("请输入你的学号:");
long id=scan.nextLong();
System.out.println(id);
System.out.println("请输入你的性别:");
String sex=scan.next();
char sexchar=sex.charAt(0);//scanner类中没有单独的字符char类型,只能转化成charAt
System.out.println(sexchar);
}
}
二、if-else
1.用if-else比较三个数字的大小
说明:if-else可以嵌套
if(num1>num2){
if(num3>num1)
System.out.println(num2+" "+num1+" "+num3);
else if(num3<num2)
System.out.println(num3+" "+num2+" "+num1);
else
System.out.println(num2+" "+num3+" "+num1);
}else{
if(num3>num2)
System.out.println(num1+" "+num2+" "+num3);
else if(num3<num1)
System.out.println(num3+" "+num1+" "+num2);
else
System.out.println(num1+" "+num3+" "+num2);
}
2.练习题
if-else对应关系要厘清
int x=4;
int y=1;
if(x>2){
if(y>2)
System.out.println(x+y);
System.out.println("gt");
}
else
System.out.println("x is"+x);
- 输出结果为gt,if(y>2)条件不符合,其下的第一个输出语句不执行,第二个语句前相当于有一个else,即输出gt
if-else 就近原则
int x=4;
int y=1;
if(x>2)
if(y>2)
System.out.println(x+y);
else
System.out.println("x is"+x);
- 输出结果为x is 4
if后括号中可赋值
bool b=true;
if(b=false)
System.out.println("a");
else if(b)
System.out.println("b");
else if(!b)
System.out.println("c");
- 输出结果为c,在第一个if语句中,b被赋值为了false
3.彩票问题
如何生成随机数
//使用Math.random() 产生随机数
//Math.random() 产生[0,1)范围的随机值
Math.random() * 90 //[0,90)
Math.random() * 90 + 10 //[10,100) 即得到 [10,99]
[a,b]:Math.random*(b-a+1)+a
//使用(int)(Math.random() * 90 + 10)产生一个两位数的随机数。
解决问题
import java.util.Scanner;
class TestCaiPiao{
public static void main(String[] args){
//1、随机产生一个两位数
//System.out.println(Math.random());//产生[0,1)
int number = (int)(Math.random()*90 + 10);//得到[10,99],即[10,100)
//System.out.println(number);
int numberShi = number/10;
int numberGe = number%10;
//2、用户输入一个两位数
Scanner input = new Scanner(System.in);
System.out.print("请输入一个两位数:");
int guess = input.nextInt();
int guessShi = guess/10;
int guessGe = guess%10;
if(number == guess){
System.out.println("奖金10 000美元");
}else if(numberShi == guessGe && numberGe == guessShi){
System.out.println("奖金3 000美元");
}else if(numberShi==guessShi || numberGe == guessGe){
System.out.println("奖金1 000美元");
}else if(numberShi==guessGe || numberGe == guessShi){
System.out.println("奖金500美元");
}else{
System.out.println("没中奖");
}
System.out.println("中奖号码是:" + number);
}
}