目录
[键盘对象 Scanner](#键盘对象 Scanner)
[do while循环语句](#do while循环语句)
[案例 猜数字小游戏](#案例 猜数字小游戏)
[十六.面向对象(基础) 面面向对象是 一种编程思想 (万物皆对象)](#十六.面向对象(基础) 面面向对象是 一种编程思想 (万物皆对象))
一.电脑基本设置
1.快捷键
win+I打开设置
win+E打开资源管理器
win+R打开运行窗口
2.关闭windows Defender防火墙
win+E打开资源管理器
网络-右键属性
windows Denfender防火墙
启用或关闭windows Denfender防火墙
专用和公共网络设置-关闭
3.显示文件扩展名
win+E打开资源管理器
查看
勾选文件扩展名
二.JDK的安装
java开发工具包

三.第一个java程序
java
public class HelloWorld{
public static void main(String[] args){
System.out.println("HelloWorld");
}
}


1.编码:书写正确的代码
2.编译:使用javac工具进行编译
3.运行:使用java工具进行运行->查看结果
四.java简介
java之父:詹姆斯.高斯林
java三大技术平台:
java SE:java语言的标准版,用于桌面应用的开发,是其它两个版本的基础。
Java ME:Java语言的小型版,用于嵌入式电子设备。
Java EE:Java语言企业版,用于企业开发,包括web方向开发。(网站=网页+后台服务器)
五.常用的DOS命令




六.IDEA编写程序




java
package haha.enen;
public class HelloWorld {
public static void main(String[] args) {//psvm main//
System.out.println("HelloWorld"); //sout//
System.out.println("大家好");
}
}
改变大小:ctrl和鼠标
注释:

java
/*
注释
。
。。
。。。
。。。。
*/
//注释
七.IDEA常用的快捷键

八.字面量
|--------|------------|
| 字面量类型 | 说明 |
| 字符串字面量 | ''YZ" |
| 整数字面量 | 666 |
| 小数字面量 | 7.65 |
| 字符字面量 | 'A' |
| 布尔字面量 | true,false |
java
package haha.enen;
public class HelloWorld {
public static void main(String[] args) {//psvm main
System.out.println(100); //sout
System.out.println("HelloWorld");
System.out.println('A');
System.out.println(3.0);
System.out.println(true);
System.out.println(false);
}
}
九.变量
定义变量格式:数据类型 变量名 = 变量值;
int age=18;
计算机存储的最小单位:字节(byte)

java
package haha.enen;
public class HelloWorld {
public static void main(String[] args) {//psvm main
String name="赵卷卷";
int age=18;
char gender='女';
double height=178.4;
boolean isMarry=true;
System.out.println(name); //sout
System.out.println(age);
System.out.println(height);
System.out.println(gender);
System.out.println(isMarry);
System.out.println(10==10);
}
}
变量的注意事项:
变量名不能重复
变量未赋值,不能使用
定义long类型变量,数据后面加L;
定义float类型变量,变量后加F;
十.关键字
关键字的字母都小写(50 个)

十一.标识符
由数字,字母,下划线和美元符组成
不能以数字开头
不能是关键字
区分大小写
案例数值拆分
java
package haha.enen;
public class Ge {
public static void main(String[] args) {
int num = 459;
num =789;
int ge = num%10;
int shi = num/10%10;
int bai = num/100%10;
System.out.println("个位:"+ ge);
System.out.println("十位:"+shi);
System.out.println("百位:"+bai);
}
}
十二.算数运算符
数字相加:隐式转换
把一个表示数据范围小的数值或者变量赋值给另一个数值范围大的变量。
java
package haha.enen;
public class Ge {
public static void main(String[] args) {
int a =10;
double b =12.7;
System.out.println(a+b);
}
}
强制转换(有可能造成数据的缺失,不允许)
把一个数值范围大的数值或者变量赋值给另一个范围小的变量。
java
package haha.enen;
public class Ge {
public static void main(String[] args) {
int a =10;
double b =12.7;
int c=(int)(a+b);
System.out.println(c);
}
}
java
package haha.enen;
public class Ge {
public static void main(String[] args) {
int a =10;
double b =12.7;
int c=(int)(a+b);
System.out.println(c);
System.out.println('c'+1);
System.out.println("5+5="+(5+5));
System.out.println("5+5="+5+5);
}
}

十三.赋值运算符
java
package haha.enen;
public class Ge {
public static void main(String[] args) {
short s=1;
s = (short) (s+1);//有int参与运算了,整体结果提升为int,将int类型赋值给short类型变量,由大到小
short ss=1;
ss+=1;
}
}
扩展的运算符蕴含了强制转换。
十四.流程控制语句
Debug基本使用
断点调试


if语句
java
package haha.enen;
public class Ge {
public static void main(String[] args) {
int age = 18;
if(age>=18){
System.out.println("你能去上网");
}else {
System.out.println("你不能上网");
}
}}
如果if语句里边只有一条可以省略大括号,但不建议。
键盘对象 Scanner
1.导包 import java.util.Scanner;
2.创建对象
3.调用方法,接收数据 int num = sc.nextInt();
案例 两个数相加
java
package haha.enen;
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {//psvm main
Scanner sc =new Scanner(System.in);
System.out.println("请输入第一个数字");
int a=sc.nextInt();
System.out.println("请输入第二个数字");
int b=sc.nextInt();
System.out.println(a + "+" + b + "=" + (a+b));
}
}
三元运算符
java
public class HelloWorld {
public static void main(String[] args) {//psvm main
int a= 10;
int b=34;
int max=a>b?a:b;
System.out.println("较大的值为"+max);
}
}
短路原则


switch语句
java
public class HelloWorld {
public static void main(String[] args) {//psvm main
int month = 12;
switch (month){
case 12:
case 1:
case 2:
System.out.println("冬季");
break;
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
default:
System.out.println("你输入的错误");
break;
}
}
}
for循环
java
package haha.enen;
public class HelloWorld {
public static void main(String[] args) {//psvm main
for (int i=1;i<=5;i+=1){
System.out.println("你好");
}
}
}
自增自减
如果符号在前,让变量先加或减1
java
public class HelloWorld {
public static void main(String[] args) {//psvm main
int a=10;
int b=a++;
System.out.println(b);
}
}
10
java
public class HelloWorld {
public static void main(String[] args) {//psvm main
int a=10;
int b=++a;
System.out.println(b);
}
}
11
案例for循环求1-100的和
java
package haha.enen;
public class HelloWorld {
public static void main(String[] args) {//psvm main
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
System.out.println("sum:" + sum);
}
}
while循环语句
java
public class HelloWorld {
public static void main(String[] args) {//psvm main
int i=0;
int sum=0;
while(i<=99){
i++;
sum+=i;
}
System.out.println(sum);
}}
do while循环语句
java
public class HelloWorld {
public static void main(String[] args) {//psvm main
int i=1;
int sum=0;
do{sum+=i;
i++;}while (i<=100);
System.out.println(sum);
}}
三种循环的区别
for循环和while循环先判断条件是否成立,在for循环结束后,就不用继续使用了
do...while循环先执行一次循环体,在while循环结束后,还可以继续使用
continue和break的区别
continue;用在循环中,用于条件控制,跳过某次循环体内容的执行,继续下一次循环。
break:用在循环中,结束当前的整个循环。
Random随机数对象
1.导包 import java.util.Random
2.创建对象 Random r = new Random();
3.生成随机数 int num= r.nextInt(100); //0-99
案例 猜数字小游戏
java
package haha.enen;
import java.util.Random;
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {//psvm main
int num = new Random().nextInt(100)+1;
Scanner sc =new Scanner(System.in);
for(;;){ System.out.println("请输入你猜的数字");
int guessNum =sc.nextInt();
if(guessNum<1||guessNum>100){
System.out.println("你输入的字超过范围");
}else if(guessNum>num){
System.out.println("猜大了");
}else if (guessNum<num){
System.out.println("猜小了");
}else if (guessNum==num){
System.out.println("猜对了");
break;
}
}}}
十五.方法
方法就是完成特定功能的代码块
方法的好处:提供代码的复用性
需要先定义后调用
java
package haha.enen;
public class HelloWorld {
public static void main(String[] args) {//psvm main
//调用方法
eat();
}
//定义方法
public static void eat() {
System.out.println("我想要吃饭");
}
}
如果没有调用,方法不会执行。
形参和实参
实参:方法调用中的参数
java
public class HelloWorld {
public static void main(String[] args) {//psvm main
//调用方法
getMax(4,66);
}
//定义方法
public static void getMax(int a,int b) {
System.out.println(a>b?a:b);
}
}
带返回值方法的定义与调用
java
package haha.enen;
public class HelloWorld {
public static void main(String[] args) {//psvm main
//调用方法
boolean flag =isEvenNumber(10);
System.out.println(flag);
if(flag){
System.out.println("这是偶数");
}
}
//定义方法
public static boolean isEvenNumber(int number){
if(number%2==0){
return true;
}else {
return false;
}
}
}
格式: public static 数据类型 方法名(参数){
return 数据;
}
方法的注意事项
方法不能嵌套定义
void 表示无返回值,可以省略return,但也可以写return,后面不能加数据。
方法重载
方法重载是指在一个类中定义多个同名方法,但是它们的参数列表不同。在调用这个方法时,根据传递的参数调用与之匹配的方法。方法重载可以根据不同的参数类型和数量,提供不同的实现逻辑,以便更灵活地满足不同的需求。方法重载可以使代码更简洁、可读性更好,同时也提高了代码的复用性。
-
方法名称相同:重载方法的名称必须相同。
-
参数列表不同:重载方法的参数列表必须不同,可以是参数类型不同、参数个数不同或者参数顺序不同。
-
返回类型可以相同也可以不同:重载方法的返回类型可以相同也可以不同,只要参数列表不同即可。
方法重载与方法的返回类型和修饰符无关:重载方法与其返回类型和修饰符无关,只要参数列表不同即可。
java
public class Ge {
public static void main(String[] args) {
int result=getSum(1,7);
System.out.println(result);
int order=getSum(7,8,9);
System.out.println(order);
double c=getSum(3.7,8.9);
System.out.println(c);
}
public static int getSum(int a,int b){
return a+b;
}
public static double getSum(double a,double b){
return a+b;
}
public static int getSum(int a,int b,int c){
return a+b+c;
}
}
让调用者不用记忆太多的方法名。
十六.面向对象(基础) 面面向对象是 一种编程思想 (万物皆对象)
类和对象
类是一类具有共同"属性"和"行为"事物的描述
对象:根据类创建出来的实体

//打印对象名,展示地址值
不同对象,在内存中存储的位置不同
成员变量由默认初始化值
java内存分配
在Java中,内存分配主要分为堆内存和栈内存。

栈:所有局部变量都会在栈内存中创建。
方法执行都会加载到栈中进行。
局部变量特点:随着方法的调用而存在,随着方法的调用完毕而消失。
堆:所有对象及其对应的实例变量和数组都储存在此处
new出来的东西,都存储在堆内存中。
每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时回收。
java有一套完整的垃圾回收机制。
成员变量和局部变量区别

private关键字



this关键字
this限定的变量用于指代成员变量
方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量。
this:方法被哪个对象调用,this就代表哪个对象

this:代表本类对象,调用本类的成员
封装


构造方法


构造方法格式:
public 方法名(){
}

构造方法作用;创建对象
快捷键
java
package lei;
public class Movie {
//成员变量,必须私有
private String name;
private String type;
private String director;
//构造方法,提供两种(alt+insert,Constructor,1.选择空参2.全选)(右键gen)
public Movie() {
}
public Movie(String name, String type, String director) {
this.name = name;
this.type = type;
this.director = director;
}
//成员方法:get和set方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getDirector() {
return director;
}
public void setDirector(String director) {
this.director = director;
}
}
java
package lei;
public class MovieTest {
public static void main(String[] args) {
//空参构造+set
Movie m1 = new Movie();
//赋值
m1.setName("战狼");
m1.setType("战争");
m1.setDirector("吴京");
//取值
System.out.println(m1.getName()+","+m1.getType()+","+m1.getDirector());
//代参构造直接赋值
Movie m2 = new Movie("阿凡达","科幻片","詹姆斯卡梅隆");
System.out.println(m2.getName()+","+m2.getType()+","+m2.getDirector());
}
}