文章目录
一、前言
本文旨在为拥有C语言基础的读者铺设一条快速掌握Java编程的道路。通过比较Java与C语言的异同,我们将揭示Java的新特性和优势,帮助读者迅速把握Java的基本框架,并感受面向对象编程的独特魅力。
二、基本程序结构
Java程序的核心精髓在于类与方法的构建,这两者共同构筑了Java面向对象编程的坚固基石。Java的注释风格与C语言颇为相似,加之编程语言间存在的共通性,使得拥有C语言基础的读者能够更为顺畅地掌握Java,轻松上手并快速进阶。
java
//定义一个公共类HelloWorld(在非包的情况下类名和文件名必须匹配)
public class HelloWorld {
//main方法是Java程序的入口(Java程序的入口严格规定要这样写)
public static void main(String[] args) {
//使用System.out.println方法输出内容到控制台
System.out.println("Hello, World!");
}
}
- public:表示这个方法或类是公共的,可以从外部访问。
- static:表示这个方法是静态的,它可以在没有创建类的实例的情况下被调用。
三、数据类型和控制流
1、数据类型
Java数据类型丰富,包括基本数据类型和引用类型。相较于C语言,Java增加了数据类型并强化了类型检查。
java
//指定类所在的包(实质就指定文件路径)
package com.thb
//在声明包后,类名和文件名无严格对应要求
public class DataType {
//在一个标准的Java项目中有且仅有一个main函数
public static void main(String[] args) {
//定义float和long类型的字面量时,需要分别添加F和L后缀
float a = 3.14F;
long b = 1234L;
//新增布尔类型,值仅为true或false
boolean c = true;
//新增byte类型,大小为1字节
byte a = 1;
//增加局部变量类型推断的特性(使用其定义必须初始化)
var d = 1.11;
//无long long类型
}
}
以下是Java数据类型的导图:
2、控制流
Java的控制流语句与C语言大致相同,如if-else、for、while、do-while等。但Java的for循环引入了增强的新特性。
java
public class DataType {
public static void main(String[] args) {
//Java的数组就是一个对象
int[] arr = { 1, 2, 3, 4 };
//增强型for循环,用于遍历一些对象
for (int i : arr) {
System.out.printf("%d ", i);
}
}
}
以下是Java流程控制的导图:
流程控制 顺序结构 分支结构 if分支 switch分支 循环结构 while循环 for循环 do-while循环
四、方法和方法重载
1、方法
在Java中,方法类似于C语言中的函数,用于执行特定任务。方法必须定义在类中,并可访问类的属性和其他方法。
java
//一个Java文件中,至多只能含有一个被public修饰的类
public class test {
public static void main(String[] args) {
//调用同一类中的方法,方法(参数列表)
ADD(1, 1);
//调用不同类中的方法,类名.方法(参数列表)
Test1.SUB(1, 1);
}
//定义一个加法方法
public static void ADD(int a, int b) {
System.out.println(a + b);
}
}
class Test1 {
//方法定义中加static修饰,不需要创建其类的对象直接使用
public static void SUB(int a, int b) {
System.out.println(a - b);
}
}
2、方法重载
Java支持方法重载,即同一类中可定义多个同名但参数列表不同的方法。编译器根据参数类型和数量确定调用哪个方法。
java
public class test {
//方法定义中没有加static修饰,需要创建其类的对象才能使用
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
}
class test1 {
public static void main(String[] args) {
//创建test类对象(或者叫实例化test类对象)
test t = new test();
//因为定义的add有返回值,这里可以嵌套调用
System.out.println(t.add(1, 2));
System.out.println(t.add(1.2, 2.2));
}
}
五、数组和字符串
1、数组
Java中的数组定义方式与C语言类似,但语法更为严格。数组一旦创建,其大小就固定了。
java
public class test {
public static void main(String[] args) {
//创建数组
int[] numbers1 = {1, 2, 3, 4, 5};
int[] numbers2 = new int[4];
//获取数组大小
int length1 = numbers1.length;
int length2 = numbers2.length;
//输出数组大小
System.out.printf("%d ", length1);
System.out.printf("%d ", length2);
}
}
2、字符串
Java中的字符串不是字符数组,而是String类的对象。String类提供了丰富的字符串操作方法,如拼接、比较、查找等。
java
//创建字符串
String str = "Hello, World!";
//获取字符串大小
int length = str.length();
这里只展示字符串的定义,使用也是和数组一样需要在类的方法中进行使用。
六、类和对象
1、面向对象的核心
Java是一种面向对象的编程语言,类是面向对象编程的核心。类定义了对象的属性和行为,而对象是类的实例。
java
public class Person {
//属性(类中定义的变量)
String name;
int age;
double height;
//方法(类中定义的函数)
public void sleep() {
System.out.println(name + "可以睡觉");
}
//构造方法(创建对象时被自动调用,用于进行初始化操作)
//如果没显示编写构造方法,系统会为这个类默认分配一个空的构造方法
public Person() {
//写代码时最好保证空构造器的存在
System.out.println("调用构造器");
}
public Person(String name, int age, double height) {
//这里要加上this指针,因为参数名和该类属性名重名
this.name = name;
this.age = age;
this.height = height;
}
}
理解面向对象的核心:将现实世界的实体抽象为对象,将对象的共性总结为类。慢慢感受万事万物皆对象,例如:每个动物都是一个单独对象,动物类则是所有动物的共性组成的类。
2、对象的创建和实例化
使用new关键字可以创建类的实例,并调用其构造方法来初始化对象。
java
public class test {
public static void main(String[] args) {
//创建对象,这里会自动调用构造器
Person person1 = new Person();
//对于类中没有加private的属性可以直接通过对象访问
person1.name = "Alice";
person1.age = 30;
//这里调用该对象的方法
person1.sleep();
//构造器在对象创建时会执行,目的是初始化对象
Person person2 = new Person("thb", 20, 170);
}
}
通过上述示例,我们逐步深入Java的面向对象编程,感受其强大的功能和灵活性。
七、总结
本文旨在为C语言基础读者提供一条快速掌握Java编程的路径。通过比较Java与C语言的异同,我们介绍了Java的基本程序结构、数据类型和控制流、方法和方法重载、数组和字符串处理,以及面向对象编程的核心概念和类的使用。Java以其丰富的数据类型、严格的类型检查、增强的for循环、方法重载和面向对象特性,展现了其强大的功能和灵活性。通过本文的学习,读者应能迅速把握Java的基本框架,为进一步深入学习和实践Java编程打下坚实基础。