[Javase]基于C快速入门

文章目录

一、前言

本文旨在为拥有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编程打下坚实基础。


相关推荐
Theodore_10223 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
网易独家音乐人Mike Zhou3 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
冰帝海岸4 小时前
01-spring security认证笔记
java·笔记·spring
世间万物皆对象4 小时前
Spring Boot核心概念:日志管理
java·spring boot·单元测试
‘’林花谢了春红‘’4 小时前
C++ list (链表)容器
c++·链表·list
没书读了4 小时前
ssm框架-spring-spring声明式事务
java·数据库·spring
----云烟----4 小时前
QT中QString类的各种使用
开发语言·qt
lsx2024065 小时前
SQL SELECT 语句:基础与进阶应用
开发语言
小二·5 小时前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic5 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端