掌握Java - Java入门学习
一、导论
Java是一种跨平台的编程语言,最初由Sun Microsystems开发,并于1995年正式推出。自那以后,Java一直在不断演进,并成为了一种非常流行的编程语言。Java的优点在于其安全性、可移植性和易学性。
与其他编程语言相比,Java具有以下特点:
- 对象导向:Java是一种面向对象的编程语言,它支持封装、继承和多态性等概念,使得代码更加易于理解和维护。
- 跨平台性:Java可以在不同的操作系统上运行,这得益于Java虚拟机(JVM)的存在。Java的程序可以在任何支持Java虚拟机的计算机上运行。
- 安全性:Java的代码运行在虚拟机环境中,因此可以有效地隔离程序与计算机系统之间的联系,减少安全漏洞的产生。
- 易学性:Java的语法类似于C++,而且Java的开发工具和学习资料都很容易获取,因此非常适合初学者入门。
本文将介绍Java的基础知识,包括Java的语法、控制流、函数、数组、面向对象编程等方面。同时,我们还将通过网络梗和具体的代码实例来帮助读者更好地理解和掌握Java。
二、Java的语法
1. 变量和数据类型
在Java中,所有的变量都需要先声明才能使用。变量声明的格式为:数据类型 变量名。例如:
Copy Code
int age;
上述代码声明了一个类型为int的变量age。在Java中,有多种数据类型,包括基本数据类型和引用数据类型。
- 基本数据类型:Java中的基本数据类型包括boolean、byte、char、short、int、long、float、double等。
- 引用数据类型:Java中的引用数据类型包括类、接口、数组等。
Java中的数据类型具有以下特点:
- boolean类型:表示布尔值,只能取true或false两个值。
- byte类型:表示8位整数。
- short类型:表示16位整数。
- int类型:表示32位整数。
- long类型:表示64位整数。
- float类型:表示32位浮点数。
- double类型:表示64位浮点数。
- char类型:表示16位Unicode字符。
在Java中,可以通过赋值来给变量赋初值。例如:
Copy Code
int a = 10;
上述代码将变量a赋值为10。
2. 控制流
Java中的控制流分为三种:顺序结构、选择结构和循环结构。
顺序结构
顺序结构是最简单的控制流结构,程序按照代码的书写顺序依次执行。例如:
Copy Code
int a = 10;
int b = 20;
int c = a + b;
System.out.println(c);
上述代码就是一个顺序结构,在执行时依次执行a、b和c的赋值操作,然后输出c的值。
选择结构
Java中的选择结构有两种:if语句和switch语句。
- if语句:if语句用于根据条件执行不同的操作。if语句的语法格式为:
Copy Code
if (condition) {
// 如果condition满足,则执行这里的代码
} else {
// 如果condition不满足,则执行这里的代码
}
例如:
Copy Code
int score = 80;
if (score > 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
上述代码判断了score的值是否大于60,如果大于60,则输出“及格”,否则输出“不及格”。
- switch语句:switch语句用于根据表达式的值来执行不同的操作。switch语句的语法格式为:
Copy Code
switch (expression) {
case value1:
// 执行操作1
break;
case value2:
// 执行操作2
break;
default:
// 执行默认操作
}
例如:
Copy Code
int num = 3;
switch (num) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
default:
System.out.println("其他");
}
上述代码根据num的值来输出不同的字符串。
循环结构
Java中的循环结构有三种:for循环、while循环和do-while循环。
- for循环:for循环用于重复执行指定次数的操作。for循环的语法格式为:
Copy Code
for (initialization; condition; update) {
// 执行操作
}
例如:
Copy Code
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
上述代码将输出0到9的数字。
- while循环:while循环用于重复执行某些操作,直到条件不满足为止。while循环的语法格式为:
Copy Code
while (condition) {
// 执行操作
}
例如:
Copy Code
int i = 0;
while (i < 10) {
System.out.println(i);
i++;
}
上述代码与上一个示例具有相同的功能,输出0到9的数字。
- do-while循环:do-while循环先执行一次操作,然后再根据条件重复执行操作。do-while循环的语法格式为:
Copy Code
do {
// 执行操作
} while (condition);
例如:
Copy Code
int i = 0;
do {
System.out.println(i);
i++;
} while (i < 10);
上述代码与前面两个示例具有相同的功能,输出0到9的数字。
3. 函数
Java中的函数类似于其他编程语言中的函数或者过程,用于封装一段需要重复使用的代码。函数由三个部分组成:函数名、参数列表和函数体。函数名用于唯一标识函数,在调用函数时使用;参数列表用于传递数据到函数中;函数体则包含了函数的具体实现。
Java中的函数声明格式为:
Copy Code
public static returnType functionName(type1 arg1, type2 arg2, ...) {
// 函数体
}
其中,public表示函数的访问修饰符,表示该函数可以被其他类访问;static表示函数的静态修饰符,表示该函数属于类,不属于实例;returnType表示函数的返回值类型,如果函数不返回任何数据,则返回类型为void;functionName表示函数的名字;type1、type2等表示函数的参数类型;arg1、arg2等表示函数的参数名称。
例如:
Copy Code
public static void printHello() {
System.out.println("Hello");
}
上述代码定义了一个名为printHello的函数,该函数不接受任何参数,返回值为void,函数体中输出了“Hello”。
在Java中,可以通过调用函数来执行函数体中的代码。函数的调用可以传递参数,可以返回值。例如:
Copy Code
public static int add(int a, int b) {
return a + b;
}
int sum = add(1, 2);
System.out.println(sum); // 输出3
上述代码定义了一个名为add的函数,该函数接受两个int类型的参数a和b,返回a和b的和。在主函数中,调用add函数,并将返回值赋值给sum,最后输出sum的值。
4. 数组
Java中的数组是一种可以存储多个相同类型数据的数据结构。在Java中,数组可以通过以下方式声明和初始化:
Copy Code
int[] arr = new int[5]; // 声明一个长度为5的整型数组
arr[0] = 1; // 给数组第一个元素赋值
上述代码声明了一个长度为5的整型数组arr,并将第一个元素赋值为1。
Java中的数组有以下特点:
- 数组的长度一旦确定,就无法修改。
- 数组可以保存多个相同类型的元素。
- 数组可以通过索引来访问元素,第一个元素的索引为0。
- 数组的长度可以通过length属性获取。
- 数组长度可以是0或正整数。
Java中的数组还可以使用以下语法来声明和初始化:
Copy Code
int[] arr = {1, 2, 3, 4, 5}; // 声明并初始化一个整型数组
上述代码声明并初始化了一个整型数组,其中包含了五个元素。
5. 面向对象编程
Java是一种面向对象的编程语言,支持封装、继承和多态等概念。面向对象编程是一种以对象为基础,通过封装、继承和多态等机制来组织代码的编程范式。在Java中,所有的数据都被视为对象,而代码则被组织成一个一个的类。
Java中的类由成员变量和成员方法组成。成员变量也称为属性,用于保存对象的状态;成员方法用于定义对象的行为和操作。
封装
在Java中,封装是指将对象的状态和行为封装在一起,对外部世界隐藏对象的实现细节。通过封装,我们可以控制对对象的访问权限,并提供更加安全和可靠的程序。
Java中使用访问修饰符来控制对成员变量和成员方法的访问权限。Java提供了四种访问修饰符:public、protected、private和默认访问修饰符(即不写访问修饰符)。
- public:表示该成员可以被任何类访问。
- protected:表示该成员只能被当前类、同一个包中的其他类以及该类的子类访问。
- private:表示该成员只能被当前类中的其他成员访问。
- 默认访问修饰符:表示该成员只能被当前类和同一个包中的其他类访问。
例如:
Copy Code
public class Person {
private String name;
public int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private void sayHello() {
System.out.println("Hello");
}
}
上述代码定义了一个名为Person的类,该类有两个成员变量name和age,其中name使用了private访问修饰符,age使用了public访问修饰符。该类还有两个成员方法getName和setName,分别用于读取和设置name成员变量的值。这两个方法都使用了public访问修饰符。另外,该类还有一个私有方法sayHello,该方法只能在当前类中访问。
继承
在Java中,继承是一种实现代码重用的机制,它允许一个类继承另一个类的属性和方法,并可以在此基础上扩展新的功能。继承的关系称为父子关系,被继承的类称为父类或超类,继承的类称为子类或派生类。
在Java中,使用extends关键字来表示继承关系。例如:
Copy Code
public class Animal {
public void eat() {
System.out.println("Animal is eating");
}
}
public class Dog extends Animal {
public void bark() {
System.out.println("Dog is barking");
}
}
上述代码定义了两个类Animal和Dog。Dog类继承了Animal类,因此它可以使用Animal类中的方法。Dog类还定义了一个自己的方法bark,该方法只在Dog类中存在。
多态
在Java中,多态是一种让不同的对象对同一消息作出响应的机制。多态允许我们可以使用一个父类类型的变量来引用子类的对象,从而实现对不同子类对象的调用。
在Java中,多态有两种实现方式:重载和重写。
- 重载:指在同一个类中,可以定义多个同名方法,但参数列表不同。当调用该方法时,会根据传递的参数类型和数量自动调用相应的方法。这种多态称为方法重载。例如:
Copy Code
public class Math {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
}
上述代码定义了一个名为Math的类,该类有两个同名方法add,分别接受int类型和double类型的参数。当我们调用add方法时,编译器会根据传递的参数类型和数量选择相应的方法。
- 重写:指在子类中重新定义父类中已有的方法,使得子类的对象可以使用不同的行为来实现父类中的方法。这种多态称为方法重写。例如:
Copy Code
public class Animal {
public void eat() {
System.out.println("Animal is eating");
}
}
public class Dog extends Animal {
public void eat() {
System.out.println("Dog is eating");
}
}
上述代码中,Dog类重新定义了Animal类中的eat方法,在Dog类中输出了不同的字符串。当我们调用Dog类的eat方法时,会执行该方法覆盖掉父类中相同名称的方法。
接口
在Java中,接口是一种定义行为的机制,它定义了一组方法的签名,但不包含方法的实现。接口可以被类实现,一个类可以实现多个接口,这样就可以实现多个行为。
在Java中,使用关键字interface来定义接口。例如:
Copy Code
public interface Animal {
public void eat();
}
public class Dog implements Animal {
public void eat() {
System.out.println("Dog is eating");
}
}
上述代码定义了一个名为Animal的接口,该接口有一个eat方法。Dog类实现了Animal接口,并提供了eat方法的具体实现。这样,我们就可以通过Animal类型的变量来引用Dog类的对象,从而实现对不同子类对象的调用。
以上就是Java语言的基础知识,涉及到了语法、控制流、函数、数组和面向对象编程等方面。如果您想深入学习Java语言,可以阅读相关文献或参加相关的课程。
转载自:https://juejin.cn/post/7244436358067028028