文章目录
一、前言二、基本程序结构三、数据类型和控制流1、数据类型2、控制流 四、方法和方法重载1、方法2、方法重载 五、数组和字符串1、数组2、字符串 六、类和对象1、面向对象的核心2、对象的创建和实例化 七、总结
一、前言
本文旨在为拥有C语言基础的读者铺设一条快速掌握Java编程的道路。通过比较Java与C语言的异同,我们将揭示Java的新特性和优势,帮助读者迅速把握Java的基本框架,并感受面向对象编程的独特魅力。
二、基本程序结构
Java程序的核心精髓在于类与方法的构建,这两者共同构筑了Java面向对象编程的坚固基石。Java的注释风格与C语言颇为相似,加之编程语言间存在的共通性,使得拥有C语言基础的读者能够更为顺畅地掌握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增加了数据类型并强化了类型检查。
//指定类所在的包(实质就指定文件路径)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循环引入了增强的新特性。
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流程控制的导图:
四、方法和方法重载
1、方法
在Java中,方法类似于C语言中的函数,用于执行特定任务。方法必须定义在类中,并可访问类的属性和其他方法。
//一个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支持方法重载,即同一类中可定义多个同名但参数列表不同的方法。编译器根据参数类型和数量确定调用哪个方法。
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语言类似,但语法更为严格。数组一旦创建,其大小就固定了。
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类提供了丰富的字符串操作方法,如拼接、比较、查找等。
//创建字符串String str = "Hello, World!";//获取字符串大小int length = str.length();
这里只展示字符串的定义,使用也是和数组一样需要在类的方法中进行使用。
六、类和对象
1、面向对象的核心
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关键字可以创建类的实例,并调用其构造方法来初始化对象。
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编程打下坚实基础。