/*
* 一、
* char int
*结果为int 类型
*char float
*结果为float
*char int flaot
*结果为flaot
*有多种类型的数据混合运算时,
系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
*
*byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型
*1.自动类型
小类型赋值给大类型,自动类型转换
如果运算类型的混合运算,转换为最大的类型,运算
2.强制类型转换
将容量大的数据转换为容量小的数据
格式:(类型)变量
*可能造成精度的降低或溢出
(int)3.14 = 3
char 有限 55555――溢出
*/
int i;
i=5;
System.out.println(i);
System.out.println(12.0%3);
/*
* 二、
* &&:左右两侧都为真结果为真,只要有一侧为假,结果为假
||:只要有一假为真,结果为真
!:取反
^:相同为假 ,不同为真
*区别
一个&:无论左边是真是假,右边都要参与运算
两个&:如果左边为假,(结果为假),右侧不再参与运算
单 |:无论左侧真假,右侧都要进行运算
双||:如果左侧为真(结果为真),右侧不再参与运算
*/
/*
* (1)nextInt():作用输入一个基本整形int
(2)nextFloat() nextDouble()
(3)next():在遇到空格 回车 TAB停止读入 读入字符串
nextLine():只在回车时停止读入 读入字符串
*/
//三、
//随机数
System.out.println((int)(Math.random()*90) + 10);//[0.0 1.0) [0 90) 10 99
/*
* 四、
* flag = (year%4==0 && year%100!=0) || (year%400 == 0);//??? year = 2000 2000%400= 0 == 0 true
* //flag = true 闰年 29
//flag = flase 非闰年 28
*/
//五、求最大公约数、最小公倍数
Scanner sc = new Scanner(System.in);
int m = 12 , n = 18;
int t = m * n;//216
// System.out.println(t);
int k = m % n;//12
// System.out.println(k);
while(k!=0) {
m = n;
n = k;
k = m%n;
}
System.out.println(n);//求最大公约数
System.out.println(t/n);//求最小公倍数
//六、输入一个数的个位、十位、百位
for(int i1=100; i1<=999; i1++) {
int ge = i1%10;
int bai = i1/100;
int shi = i1/10%10;
//七、九九乘法表
for(int i2=1;i2<10;i2++) {
for(int k1=1; k1<=i2;k1++) {
System.out.print(k1 + "*" + i2 + "=" + k1*i2 + "\t");
}
System.out.println();
}
//七、判断是否为素数
//2 3 5 7
//5是否是质数 2 3 4
//9 2 3 4 5 6 7 8
//9 2 3 4 5 7 8
int count = 0;
int sum = 0;
boolean flag = true;
for(int i1=2; i1<=100; i1++) {
flag = true;
for(int k1=2; k1<=i1-1; k1++) {
if(i1%k1 == 0) {
flag = false;//flag 一直是false
break;
}
}
if(flag == true ) {
System.out.println("质数为:" +i1);
count++;
}
sum += i1;
}
System.out.println("数量为:" + count);
System.out.println("所有质数的和为:" + sum);
}
//八、一维数组
/* 1.一维数组的声明
* 2.一维数组的初始(动态 静态):长度固定
* 3.如何调用指定位置的元素
* 4.如何获取数组的长度
* 5.遍历数组
* 5.1 下标法
* 5.2 foreach法
*
* 6.默认初始化值
*/
//1.一维数组的声明
//(1)C语言常用 的定义方法
int arr01[] = new int[5];//类型 数组名 [] 长度
//下标 arr01[0] arr01[4]
//(2)JAVA使用的定义方法
int[] arr02 = new int[10];
float[] arr03 = new float[5];
String[] arr04 = new String[10];
//数组长度:数组名.length
//数组遍历两种方法
String[] fruits = {"苹果" , "香蕉" , "梨子" , "火龙果" , "西瓜"};
//1.使用下标法
for(int z=0; z<fruits.length; z++) {
System.out.print(fruits[z] + "\t");
}
//2.foreach
System.out.println();
System.out.println("************************");
for(String str: fruits) {
System.out.print(str + "\t");
}
System.out.println();
//利用数组求学生成绩
System.out.print("请输入学生人数:");
Scanner sc1 = new Scanner(System.in);
int n1 = sc1.nextInt();
System.out.println("请输入" + n1 + "个成绩:");
int a[] = new int[n1];
for(int i1 = 0; i1 < a.length; i1++) {
a[i1] = sc1.nextInt();
}
int max = 0;
for(int i1 = 0; i1 < a.length; i1++) {
if(a[i1] > max) {
max = a[i1];
}
}
System.out.println("最高分是:" + max);
char g;
for(int i1 = 0; i1 < a.length; i1++) {
if(a[i1] >=max - 10) {
g = 'A';
}else if(a[i1] >=max - 20) {
g = 'B';
}
else if(a[i1] >=max - 30) {
g = 'C';
}
else {
g = 'D';
}
System.out.println(" student" + i1 + " score is " + a[i1] + "grade=" + g);
}
//九、method中的方法
//自定义的方法只能通过调用方可执行,自己无法执行
//自定义和main平行的关系,不能嵌套
//addMethod
// addMethod(5.5 , 9.9);//实参 --> 形参
// System.out.println(addMethod02(5.5 , 9.9));
//十、重载
/*
* 1.重载的概念
* 指在同一个类中,出现一个及以上的同名方法,参数不同就可以:(1)数量不同(2)类型不同
* 2.重载的特点
* 与返回值的类型无关,与参数有关(只要符合方法名相同,参数不同--> 重载)
* 3.重载的优点
* 便于阅读,优化了程序的设计
* 4.注意
* 方法与变量一样也需要先定义后使用
*/
//十一、面向对象
/* 1.面向对象概念
* 面向对象是相对于相向过程而言。
* 面向过程强调的是功能行为
* 面向对象,将这样的功能行为,封装进了对象中
*
* 2.特点
* 封装
* 继承
* 多态
*
* 3.面向对象的设计思想
* 对象,如果对象不存在创建这样的对象
*
* 4.类和对象是面向对象的核心概念
* 类:是对一类事物的描述,是抽象上的、概念上的定义
* 对象:实例,是该类事物的个体
* 万事万物皆对象
*
* 同学(对象)
* 人:类
*
* 只要是对象就具备属性和行为
* 对象:用来描述客观事物的一个实体
* 属性:所具有的特征(name age pro sex tel )
* 行为:执行的操作(学习 吃饭 运动 娱乐 休息)
*
* 类:是具有相同属性和相同方法的对象的集合
* 类是对象的抽象是概念似的
*
* 5.类的定义语法
* 修饰符 class 类名{
* 变量定义属性;
* 方法定义行为;
* }
* (1)修饰符:public
* (2)关键字class:含义说明定义的是一个类
* (3)类名:正确的命名规则;工程驼峰式命名
*/
/*6.定义类的步骤
* 1.定义类(考虑修饰符、类名)
2.编写类的属性(考虑修饰符、属性类型、属性名、初始化值)
3.编写类的方法(考虑修饰符、返回值类型、方法名、形参等)
*/
/*
* 如何创建对象
* 语法格式
* 类名 对象名 = new 类名();
* 通过对象调用属性和方法的语法格式
* 对象名.属性名
* 对象名.方法名
*/
/*PersonTest
* Person p1 = new Person();//创建对象
//1.姓名 性别 年龄 民族 tel
//2.吃饭 休息 娱乐 print
//调用类中的属性,类中的方法
p1.name = "张晓明";
p1.age = 18;
p1.sex = 'M';
p1.tel = "13888888888";
p1.nation = "汉族";
//调用方法
p1.print();//输出个人信息
p1.eat();
p1.eat("面条");//实参
p1.eat("面包");//" "
p1.relax();
p1.fun();//无参方法
p1.fun("看电影");//重载
p1.fun("打篮球");
p1.fun("唱歌" , "打游戏");
System.out.println("*******************");
*/
/* 类:具有相同属性和相同方法的集合(概念、抽象)
*
* 构造器:可以对变量进行快速的初始的化
* 1.如何定义
* 它具有与类相同的名称
* 它不声明返回值类型。(与声明为void不同)
* 不能被static、final、synchronized、abstract、native修饰,不能有return语句返回值
*
* 2.注意事项
* Java语言中,每个类系统都至少有一个无参构造器
* 默认构造器的修饰符与所属类的修饰符一致
* 一旦显式定义了构造器,则系统不再提供默认构造器
在new对象时,由JVM自动的调用构造器
*/
/*
* 成员变量:在方法体外、类内部定义的变量称为成员变量
* 局部变量:在方法体内定义的变量称为局部变量
*/