键盘录入
1.导包 import java.util.Scanner;(定义在最上边)
2.创建对象 Scanner sc=new Scanner(System.in);(只有sc可变)
3.int i=sc.nextInt();(i为变量名)
//第一套
nextInt();接收整数
nextDouble();接收小数
next();接收字符串
————遇到回车,空格,制表符就会结束
//第二套
nextLine();接收字符串
————仅遇到回车会结束
数据类型转换
1.隐式转换
取值范围:byte<short<int<long<float<double
取值范围小的与取值范围大的相运算时,小的会转换为大的,再进行运算;
byte,short,char运算时会直接转换为int,进行计算。
2.强制转换
取值范围大的赋值给取值范围小的,需要强制转换
double a=12.3;
int b=(int)a;
3.字符串运算
System.out.println(3.7+"abc");//3.7abc
System.out.println("abc"+true);//abctrue
System.out.println(1+9+"个苹果");//10个苹果
4.生成随机数
//1.导包
import java.util.Random;
//2.创建对象
Random r=new Random();//r可变
//3.生成随机数
int number=r.nextInt(随机数的范围);//从0开始,到该数减1结束
5.数组
//静态初始化
完整 int [] array=new int[]{1,2,3};
简化 int [] array={1,2,3};
//动态初始化
int []array=new int[num];//num为数组长度
6.内存
栈:方法运行时,使用的内存。如main方法运行
堆:new出来的东西都在堆里面
7.方法
不带参数的方法:
public static void main(String[] args) {
playGame();
}
public static void playGame() {
System.out.println("打游戏");
}
带参数的方法:
public static void main(String[] args) {
method(1,2);
}
public static void method(int num1,int num2){
System.out.println(num1+num2);
}
带返回值:
public static void main(String[] args) {
int a=method(1,2);
}
public static int method(int a,int b){
return a+b;
}
8.重载
在同一个类中,方法名相同,参数不同的方法。与返回值无关
参数不同:个数不同,顺序不同,类型不同
面向对象
1.
通过
public class Phone{
//属性(成员变量)
String brand;
double price;
//行为(方法)
public void call(){}
public void PlayGame(){}
}之类来创建对象,然后用Phone p=new Phone();得到类的对象
访问属性 对象名.成员变量 eg. p.brand="小米";
访问行为 对象名.方法名() eg. p.call();
- 类名首字母注意大写,见名知意
- 一个java文件中可以定义多个class类,且只能一个类被public修饰,而且public修饰的类名必须成为代码文件名(实际开发中建议一个文件定义一个class类)
- 成员变量定义格式:修饰符 数据类型 变量名=初始化值(一般无需给定初始化值,有默认)
this
public class add{
private int a=0;//成员变量
public int setadd(int a){//这里a为局部变量
a=10;
System.out.println(a);//这里a根据就近原则
System.out.println(this.a);
}
}
构造方法
1.方法名与类名相同,大小写一致
2.无返回值类型,连void也没有
3.无具体的返回值(不能由return带回具体的结果数据)