```toc
```
**看不懂的看菜鸟教程**
# 1.数据类型
1. byte是小整数
2. float最后需要加f,不加f需写成double类型
3. 布尔类型为**boolean:**
4. 在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似:
** final double PI = 3.1415927;**
5. 类变量(静态变量)
被所有实例共享。
static
```java
public class MyClass {
public static int count = 0;
// 其他成员变量和方法
}
```
6. 驼峰命名法: MyClass TheTeacher
# 2.Java 修饰符
![[Pasted image 20240129114302.png]]
为了实现一些其他的功能,Java 也提供了许多非访问修饰符。
static 修饰符,用来修饰类方法和类变量。
final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
abstract 修饰符,用来创建抽象类和抽象方法。
synchronized 和 volatile 修饰符,主要用于线程的编程。
# 3.运算符
1. **条件运算符**
()? :
variable x = (expression) ? value if true : value if false;
a = 10;
b = (a == 1) ? 20 : 30;
System.out.println( "Value of b is : " + b );
输出b=30
2. **instanceof运算符**
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
( Object reference variable ) instanceof (class/interface type)
下面是一个例子:
String name = "James";
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真
# 4.循环
1. java增强for循环
for(声明语句 : 表达式)
{
//代码句子
}
```java
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers )
{ System.out.print( x );
System.out.print(",");
}
```
# 5.格式化
String fs;
fs = String.format("浮点型变量的值为 " +
"%f, 整型变量的值为 " +
" %d, 字符串变量的值为 " +
" %s", floatVar, intVar, stringVar);
System.out.printf("浮点型变量的值为 " +
"%f, 整型变量的值为 " +
" %d, 字符串变量的值为 " +
"is %s", floatVar, intVar, stringVar);
# 6. String类
String对象创建后不可修改,StringBuffer对象可以修改且线程安全,StringBuilder类可以修改
string对象的创建和格式化
```java
String abc= String.format(new String("hellp,%s"), "lim");
System.out.println(abc);
System.out.println(abc.length());
```
除此之外,java还封装了Integer,Long等类分别对应int ,long等数据类型
# 7.IO流
'import java.io.*;'
需要写try catch
```java
import java.io.*;
public class io {
public static void main(String []args)
{
try {
OutputStream out = new FileOutputStream("test.txt");
byte b=12;
out.write(b);
}
catch (IOException e) //此处可把IOException改为Exception,即IOException的父类
{
System.out.println("出错");
}
}
}
```
# 8.键盘输入
用Scanner类
import java.util.Scanner;
使用Scanner类时需要注意nextLine()和next()的区别:
nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
next()会自动消去有效字符前的空格,只返回输入的字符,不能得到带空格的字符串。
```java
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine(); //读取字符串型输入
int age = scanner.nextInt(); //读取int型输入
float digital = scanner.nextFloat(); //读取float型输入
System.out.println("1为"+name);
System.out.println("2为"+age);
```
# 9.类的继承
extends
格式:
class 父类 {
}
class 子类 extends 父类 {
}
# 10.接口
格式
interface 接口名称 [extends 其他的接口名] {
// 声明变量
// 抽象方法
}
接口间可以多继承,用extends
类继承接口用implements
# 11.枚举
格式
enum Color
{
RED, GREEN, BLUE;
}
**Java 枚举是一个特殊的类,** 一般表示一组常量,比如一年的 4 个季节,一年的 12 个月份,一个星期的 7 天,方向有东南西北等。
Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。
```java
enum Color
{
RED, GREEN, BLUE;
}
public class MyClass {
public static void main(String[] args) {
Color myVar = Color.BLUE;
switch(myVar) {
case RED:
System.out.println("红色");
break;
case GREEN:
System.out.println("绿色");
break;
case BLUE:
System.out.println("蓝色");
break;
}
}
}
```
# 12.包
1. 在Java中类的定义和实现写在一起
2. 包类似一个文件夹,一个包可以有多个.java文件,一个Java文件只能有一个public类,可以有多个non-public类,但这些non-public类只能在这个包中调用(外包不能调用,同包可以调用)
3. 一个java文件要声明自己的所属包,格式:
程序的最前面,写 package abc;
4. 不属于这个包的文件要想调用该包中的文件,要在声明自己所属包的后面 ’写import abc .* *;‘(或者把 *换成abc这个包中的不同java文件),并且只能调用这个java文件中的public类,
gpt扩充后:
1. **类的定义和实现写在一起:** 是的,Java中类的定义和实现通常写在同一个文件中,这个文件的扩展名是 `.java`。每个 `.java` 文件中可以包含一个公共类(public class),这个类的名称应该与文件名相匹配。
2. **包的概念:** 包是用来组织和管理类的命名空间的,类似于文件夹。一个包可以包含多个 `.java` 文件,这些文件可以包含一个public类和多个non-public类。non-public类只能在同一个包内被其他类访问,而public类的名称应该与文件名相同,并且可以被其他包中的类访问。
3. **声明自己所属包:** 是的,每个 `.java` 文件的第一行可以用 `package` 关键字声明所属的包。例如,`package abc;` 表示该文件属于 `abc` 包。
4. **导入其他包的类:** 如果要使用不属于当前包的类,需要使用 `import` 语句。语法是 `import 包名.类名;` 或者 `import 包名.*;`,这样就可以在当前文件中使用那个包中的类了。需要注意的是,只有公共类(public class)才能被其他包中的类调用。