发表时间:2022-03-24来源:网络
学校公选课选了Java,所以把Java学一下,每周三更一丢丢
环境使用的是sdk-9.0.1
IDE使用的是IntelliJ IDEA 2019.3.3
Java程序开发三步骤:编写,编译,运行
其中:
Javac.exe是编译器
Java.exe是解释器
先新建一个HelloWorld.java然后通过cmd先编译再运行
编译:javac HelloWorld.java 这里会生成一个HelloWorld.class文件,就是编译以后运行用的
运行:java HelloWorld 这里运行的是HelloWorld.class文件但是我们不需要再cmd中输入.class
out:Hello World!
Java的注释规则和C/C++一样
单行用//多行用/**/
这里第一行中的第三个单词必须和文件名称完全一样
public class后面定义的是一个类的名称,类是java当中所有源代码的基本组织单位
第三行中public static void main(String[] args)是万年不变的固定写法,代表main方法,这一行代表程序执行的起点
System.out.println("Hello World!")是java的print语句
标识符:是指在程序中,我们自己定义内容。比如类的名字、方法的名字和变量的名字等等,都是标识符
HelloWorld案例中,出现的标识符有类名字HelloWorld命名规则:
标识符可以包含英文字母26个(区分大小写)、0-9数字、$(美元符号)和_(下划线)标识符不能以数字开头标识符不能是关键字常量:是指在Java程序运行期间固定不变的数据
分类和C/C++,python中的基本上都是一样的
分为:
变量:常量是固定不变的数据,那么在程序中可以变化的量称为变量
就和C/C++中int a等一样,一个保存数据的变量
Java的数据类型分为两大类:
基本数据类型:包括整型、浮点型、字符、布尔引用数据类型:包括类、数组、接口
Java中默认的数据类型:整型是int,浮点型是double
public class Variable { public static void main(String[] args) { byte b = 100; // 定义字节变量 System.out.println(b); short s = 1000; // 定义短整型变量 System.out.println(s); int i = 123456; // 定义整型变量 System.out.println(i); long l = 111111111111L; // 定义长整型,注意末尾要加L System.out.println(l); float f = 3.14F; // 定义单精度浮点型,注意末尾要加F System.out.println(f); double d = 3.1415926; // 定义双精度浮点型 System.out.println(d); boolean bool = true; // 定义布尔变量 System.out.println(bool); char c = 'A'; // 定义字符型变量 System.out.println(c); } }自动转换:将取值范围小的类型自动提升为取值范围大的数据类型
转换规则:
范围小的类型向范围大的类型提升,byte,short,char运算时提升为int
byte,short,char--->int--->long--->float--->double--->String
public class DataType { public static void main(String[] args) { System.out.println(2020); // 整数类型,默认就是int System.out.println(3.14); // 浮点数类型,默认为doule int num1 = 1; byte num2 = 3; // byte sum1 = num1 + num2; 会报错,因为num1是int类型,不会自动转换为小的byte类型 int sum2 = num1 +num2; // 自动转换:将取值范围小的类型自动提升为取值范围大的数据类型 // 这里byte只有一个字节,在和int类型运算时,会提升为int类型,自动补充3个字节 System.out.println(sum2); double num3 = 3.14; double sum3 = num1 + num3; System.out.println(sum3); char c = '1'; int sum = c + num1; // c去ASCII码数字 System.out.println(sum); } }out:
2020 3.14 4 4.140000000000001 50强转类型转换:将字节大的数据类型强转成字节小的数据类型
类似于python中的规则
public class DataType { public static void main(String[] args) { // 将字节大的数据类型强转成字节小的数据类型 int i = (int)3.14; // 类似于python中的强转,这里取整 System.out.println(i); short s = 1; //s = s + 1; error,因为1默认为int类型,所以s的字节无法存储1 s = (short)(s+1); System.out.println(s); } }浮点转成整数,直接取消小数点,可能造成数据损失精度
int强制转成short砍掉2个字节,可能造成数据丢失、数据溢出
对于byte/short/char三种类型来说,如果右边复制的数值没有超过范围,那么编译器会自动隐含的为为我们补上强转符号(byte)(short)(char),超过范围就会报错
在给变量进行赋值的时候,如果右侧的表达式中全都是常量,没有任何变量,那么编译器将会直接将若干个常量表达式计算得到结果
字符串相加即为字符串拼接,与python规则一样
自增自减和cpp、python一样,不详细讲了
字符串在Java中的定义为String使用的是双引号""
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。
Graft.class
public class Draft { public static void main(String[] args) { Person one = new Person(); one.name = "GEM"; one.setAge(18); System.out.println(one.getAge()); } }对于boolean数据类型,getXxx要更换成isXxx,而setXxx规则不变
public class Person { String name; private int age; boolean male; public void setAge(int num) { age = num; } public int getAge() { return age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void setMale(boolean bool) { male = bool; } public boolean isMale() { return male; } }构造方法是专门用来创建对象的方法,当我们通过关键字nuw来创建对象时,其实就是在调用构造方法
1、构造方法的名称必须和所在类的名称完全一样2、构造方法不用写返回值,不用写void3、如果没有编写任何构造方法,编译器会自动创建一个空的构造方法4、构造方法也是可以重载的public class Person { private String name; private int age; boolean male; public Person(){ System.out.println("无参构造"); } public Person(String name,int age){ System.out.println("有参构造"); this.name = name; this.age = age; } public void setAge(int num) { age = num; } public int getAge() { return age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isMale() { return male; } public void setMale(boolean bool) { male = bool; } } package ash; public class Draft { public static void main(String[] args) { Person one = new Person(); System.out.println("=============="); Person two = new Person("GEM",18); System.out.println(two.getAge()); System.out.println(two.getName()); two.setAge(19); System.out.println(two.getAge()); } }out:
无参构造 ============== 有参构造 18 GEM 19如果对象需要重新修改成员变量数据内容,仍需要setXxx
一个标准的类通常需要满足以下四点:
1、所有的成员变量都要使用private进行私有化修饰2、为每一个成员变量编写一对Getter/Setter3、编写一个无参的构造方法4、编写一个全参的构造方法传送门:
🖱点我传送
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务