Java
数据输入
Scanner使用的基本步骤
-
导包
import java.util.Scanner;
导包的动作必须出现在类定义的上边,也就是public class上面
-
创建对象
Scanner sc = new Scanner(System.in);
上面这个格式里面,只有sc是变量名,可以变,其他的都不允许变
-
接收数据
int i = sc.nextInt();
上面这个格式里面,只有i是变量名,可以变,其他的都不允许变
case穿透
switch(month){
case 1:
case 2:
case 12:
System.out.println("冬季");
break;
case 3:
case 4:
case 5:
System.out.println("春季");
break;
default:
System.out.println("你输入的月份有误")
}
//default后面的break可以省略
//避免代码冗余的情况,可以使用case穿透,也就是不同case在输出相同语句的情况下可以省略break
循环语句
特征:重复做某件事情,具有明确的开始和停止标志
循环结构的组成:
-
初始化语句:用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
-
条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
-
循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情
-
条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否执行下去
for结构
//格式
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
水仙花案例
水仙花数:一个三位数,其个十百位数的立方之和等于其本身
-
三位数的个位数字如何求:
371 1就是原始数字对10进行取余运算的结果 371 % 10 = 1
-
三位数的百位数字如何求:
371 3就是原始数字除以100的结果(整数) 371 / 100 = 3
-
三位数的十位数字如何求:
371 371通过除以10,可以将7移动到个位上(整数) 371 / 10 = 37
371通过对10进行取余运算,可以得到最后一位的值7 37 % 10 = 7
public class ForTest{
for(int i=100 ; i < 1000 ; i++){
int ge = i%10;
int shi=i/10%10;
int bai=i/10/10%10;
if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i){
System.out.println(i);
}
}
}
while循环语句
//完整格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
do...while循环语句格式
//完整格式:
初始化语句;
do{
循环体语句;
条件控制语句;
}while{条件判断语句};
三种循环的区别
-
for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
-
do...while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环(先执行后判断)
for和while的区别:
-
条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问了
-
条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
跳转控制语句
-
continue基于条件控制,跳过某次循环体内容的执行,继续下一次执行
-
break基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环
循环嵌套
语句结构:
-
顺序语句:以分号结尾,表示一句话的结束
-
分支语句:一对大括号表示if的整体结构,整体描述一个完整的语句
一对大括号表示switch的整体结构,整体描述一个完整的switch语句
-
循环语句:一对大括号表示for的整体结构,整体描述一个完整的for语句
一对大括号表示while的整体结构,整体描述一个完整的while语句
do...while以分号结尾,整体描述一个完整的do...while语句
任何语句对外都可以看成是一句话,一句代码
分支语句中包含分支语句,称为分支嵌套
循环语句中包含循环语句称为循环嵌套
Random
Random的作用和使用步骤
作用:用于产生一个随机数
使用步骤
-
导包
import java.util.Random; //导包的动作必须出现在类定义的上面
-
创建对象
Random r = new Random(); //上面这个格式里面,r是变量名,可以变,其他的都不允许变
-
获取随机数
int number = r.nextInt(10);//获取数据的范围:[0,10),包括0,不包括10 //上面这个格式里面,number是变量名,可以变,数字10可以变,其他的都不允许变
方法的参数传递
-
对于基本数据类型的参数,形式参数的改变,不影响实际参数的值
-
对于引用数据类型的参数,形式参数的改变,改变实际参数的值
面向对象基础
类和对象
1.1什么是对象
万物皆对象,客观存在的食物皆为对象
1.2什么是面向对象
人——>事物信息
1.3什么是类
类就是对现实生活中一类具有共同属性和行为的事物的抽象
类的特点
-
类是对象的数据类型
-
类是具有相同属性和行为的一组对象的集合
1.4什么是对象的属性
属性:对象具有的各种特征,每个对象的每个属性都具有特定的值
1.5什么是对象的行为
行为:对象能够执行的操作
1.6类和对象的关系
类:类是对现实生活中一类具有共同属性和行为的事物的抽象
对象:是能够看得到摸得着的真实存在的实体
类是对象的抽象,对象是类的实体
1.7类的定义
类的重要性:是java程序的组成单位
类是什么:类就是对现实生活中一类具有共同属性和行为的事物的抽象
类的组成:属性和行为
-
属性:在类中通过成员变量来体现(类中方法外的变量)
-
行为:在类中通过成员方法来体现(和前面的方法相比较去掉static关键字即可)
类的定义步骤
-
定义类
-
编写类的成员变量
-
编写类的成员方法
puclic class 类名{ //成员变量 变量1的数据类型 变量1; 变量2的数据类型 变量2; .... //成员方法 方法1; 方法2; .... }
package XX;
public class Phone{
//成员变量
String brand;//品牌,字符串类型
int price;//价格,整数类型
//成员方法
public void call(){
syso("打电话");
}
public void sendmessage(){
syso("发短信");
}
}
1.8对象的使用
创建对象 | 使用对象 |
---|---|
格式:类名 对象名 = new 类名(); 范例:Phone p = new Phone(); | 1:使用成员变量 格式:对象名.变量名 范例:p.brand 2:使用成员方法 格式:对象名.方法名() 范例:p.call() |
package XX;
public class PhoneDemo{
public static void main(String[] args){
//创建对象
Phone p = new Phone();
//使用成员变量
syso(p.brand);//null
syso(p.price);//0
p.brand = "小米";
p.price = 2999;
syso(p.brand);//小米
syso(p.price);//2999
//使用成员方法
p.call();//打电话
p.sendmessage();//发短信
}
}
案例:学生
需求:首先定义一个学生类,然后定义一个学生测试类,在学生测试类中通过对象完成成员变量和成员方法的使用
成员变量:姓名,年龄....
成员方法:学习,做作业....
①定义一个学生类
类名:Student 成员变量:name,age 成员方法:study(),doHomework()
②定义学生测试类
类名:StudentDemo 因为要测试,所以有一个主方法:main方法
③在学生测试类中通过对象完成成员变量和成员方法的使用
给成员变量赋值,输出成员变量的值 调用成员方法
成员变量和局部变量
3.1什么是成员变量和局部变量
成员变量:类中方法外的变量
局部变量:方法中的变量
3.2成员变量和局部变量的区别
区别 | 成员变量 | 局部变量 |
---|---|---|
类中位置不同 | 类中方法外 | 方法内或者方法声明上 |
内存中位置不同 | 堆内存 | 栈内存 |
生命周期不同 | 随着对象的存在而存在,随着对象的消失而消失 | 随着方法的调用而存在,随着方法的调用而消失 |
初始化值不同 | 有默认的初始值 | 没有默认的初始值,必须先定义,赋值,才能使用 |
封装
4.1private关键字
-
是一个权限修饰符
-
可以修饰成员(成员变量和成员方法)
-
作用是保护成员不被别的类使用,被private修饰的成员只在本类中才能访问
针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作
-
提供get变量名()方法,用于获取成员变量的值,方法用public修饰
-
提供set变量名(参数)方法,用于设置成员变量的值,方法用public修饰
public void setAge(int a){ age = a; } //get方法需要设置返回值 public int getAge(){ return age; }
4.2private关键字的使用
一个标准类的编写:
-
把成员变量用private修饰
-
提供对应的getXxx()/setXxx()方法
public class Student{
//成员变量
private String name;
private int age;
//get / set 方法
public void setName(String n){
name = n;
}
public String getName(){
return name;
}
public void setAge(int a){
age = a;
}
public int getAge(){
return age;
}
public void show(){
syso(name + "," + age)
}
}
StudentDemo{
main
//创建对象
Student s = new Student();
//使用set方法给成员变量赋值
s.setName("林青霞");
s.setAge(30);
s.show();
//使用get方法获取成员变量的值
syso(s.getName() + "---" + s.getAge());
syso(s.getName() + "," + s.getAge());
}