首页 > 编程语言 >Java初学者指南

Java初学者指南

时间:2024-11-06 22:18:46浏览次数:3  
标签:指南 ... Java void 初学者 println public out

Java 是什么?

Java 是一种高级、面向对象的编程语言,设计目的是平台无关性,允许开发者“一次编写,到处运行”(WORA)。这意味着 Java 代码在一个平台上编译后,可以在任何支持 Java 的平台上运行,而无需重新编译。

Java 的历史

  • 由詹姆斯·高斯林和 Sun Microsystems 于 1991 年发明
  • 初始名称:Oak(以高斯林办公室外的橡树命名)。
  • 更名为 Green,然后改为 Java Coffee(受印尼咖啡启发),最终在 1995 年简化为 Java

Java 用于什么?

Java 广泛应用于多个领域,包括:

  • Web 和移动应用:Android 应用开发、Web 应用和 Web 控制台。
  • 桌面应用:计算机和其他设备的软件。
  • 嵌入式系统:电视、空调、洗衣机等设备。
  • 游戏开发:简单和复杂的游戏。
  • 金融服务:银行应用、在线交易和金融系统。
  • 在线服务:注册表单、电子商务和其他基于 Web 的服务。

Java 基于什么?

Java 基于 C 和 C++。主要组件包括:

  • 编译器:将 Java 源代码转换为字节码。
  • Java 虚拟机(JVM):以平台无关的方式执行字节码。
  • 运行时环境:提供必要的库和支持,以便运行 Java 应用程序。

Java 的版本

  1. Java 标准版(Java SE)
    • 核心库和 API。
    • 适用于通用应用程序。
  2. Java 企业版(Java EE)
    • 包括 Java API,如 JMS、EJB、JSP/Servlet 等。
    • 适用于企业级应用。
  3. Java 微型版(Java ME)
    • 用于在手机、机顶盒、手持设备等上编程。
    • 适用于资源受限的设备。

Java 的概念和特性

Java 概念

Java 的核心概念是其面向对象编程(OOP)特性。OOP 通过提供一些概念简化了软件和应用的开发和维护:

  1. 对象:对象是一个具有状态和行为的实体。例如,狗可以被视为一个对象,有颜色、品种和名字等属性,以及吠叫和吃东西等行为。
  2. :类是多个对象的集合。它是创建对象的蓝图。类用于组织代码,就像超市中水果、蔬菜和药品被分成不同的区域一样。
  3. 构造函数:构造函数看起来像一个方法,但它不是。它的名称与类名相同,且不返回任何值。
  4. 继承:继承是指一个类获取父类的属性和行为的概念。
  5. 多态:多态是指以不同方式执行同一任务的过程。它允许程序员在不同上下文中使用同一个词表示不同的意思。
  6. 抽象:抽象用于隐藏内部细节,只显示相关的必要细节。
  7. 封装:将代码和数据绑定在一起形成一个单一单元(如胶囊)称为封装。Java 类就是一个封装的例子。
Java 特性

Java 具有许多特性和品质,包括:

  • 简单的语法:非常容易理解和学习。
  • 健壮性:消除了 C 和 C++ 中常见的错误。
  • 包含垃圾回收和异常处理等特性
  • 可移植性:Java 可以在任何平台上运行。
  • 安全性:Java 是安全的,支持多任务处理。
  • 性能:虽然不如 C 和 C++ 快,但提供了比其他语言更高的性能。
Java 的组件

Java 编程语言有三个主要组件:

  1. Java 虚拟机(JVM)
    • 提供一个平台无关的 Java 组件,为执行 Java 程序提供环境。JVM 加载代码、验证代码、执行代码并提供运行时环境。
  2. Java 运行时环境(JRE)
    • 构建一个环境,使 Java 文件可以运行和执行。JRE 是一个包含 JVM、Java 类库和 Java 类加载器的软件包。
  3. Java 开发工具包(JDK)
    • JRE 的超集,是一个用于开发 Java 应用程序和小程序的软件开发环境。JDK 包括一个私有的 JVM 和一些其他资源,以完成 Java 应用程序的开发。

Java 面向对象编程(OOP)概念

面向对象编程(OOP)是 Java 的核心概念之一,它通过四个主要原则来简化软件和应用的开发及维护。这四个原则是:

  1. 抽象(Abstraction)
  2. 封装(Encapsulation)
  3. 多态(Polymorphism)
  4. 继承(Inheritance)

1. 抽象(Abstraction)

抽象(Abstraction)是面向对象编程(OOP)中的一个核心概念,它指的是展示对象的相关细节,同时隐藏不必要的内部实现细节。通过抽象,可以减少复杂性,提高代码的可读性和可维护性。抽象帮助我们关注高层逻辑,而不是具体的实现细节。

抽象的两个主要方面

  1. 数据抽象:只展示对象的必要属性,隐藏内部数据结构。
  2. 过程抽象:只展示对象的方法签名,隐藏方法的具体实现。

抽象的实现方式

在 Java 中,抽象可以通过以下几种方式实现:

  1. 抽象类(Abstract Class):

    • 抽象类是不能被实例化的类,只能被继承。
    • 抽象类可以包含抽象方法(没有具体实现的方法)和非抽象方法(有具体实现的方法)。
    • 子类必须实现抽象类中的所有抽象方法。
  2. 接口(Interface):

    • 接口是一组抽象方法的集合。
    • 实现接口的类必须实现接口中定义的所有方法。
    • 从 Java 8 开始,接口可以包含默认方法(default methods)和静态方法(static methods)。

示例

抽象类

// 定义一个抽象类
abstract class Animal {
    // 抽象方法
    public abstract void makeSound();

    // 非抽象方法
    public void breathe() {
        System.out.println("Breathing...");
    }
}

// 定义一个具体的子类
class Dog extends Animal {
    // 实现抽象方法
    @Override
    public void makeSound() {
        System.out.println("Barking...");
    }
}

public class AbstractClassExample {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.makeSound(); // Barking...
        dog.breathe();   // Breathing...
    }
}

在这个例子中,Animal 是一个抽象类,包含一个抽象方法 makeSound 和一个非抽象方法 breatheDog 类继承了 Animal 类,并实现了 makeSound 方法。通过这种方式,Dog 类只需要关注如何实现 makeSound 方法,而不需要关心 breathe 方法的具体实现。

** 接口**

// 定义一个接口
interface Drawable {
    // 抽象方法
    void draw();

    // 默认方法(Java 8+)
    default void erase() {
        System.out.println("Erasing...");
    }

    // 静态方法(Java 8+)
    static void printMessage() {
        System.out.println("This is a drawable object.");
    }
}

// 实现接口的类
class Circle implements Drawable {
    @Override
    public void draw() {
        System.out.println("Drawing a circle");
    }
}

public class InterfaceExample {
    public static void main(String[] args) {
        Circle circle = new Circle();
        circle.draw();   // Drawing a circle
        circle.erase();  // Erasing...
        Drawable.printMessage(); // This is a drawable object.
    }
}

在这个例子中,Drawable 是一个接口,包含一个抽象方法 draw、一个默认方法 erase 和一个静态方法 printMessageCircle 类实现了 Drawable 接口,并提供了 draw 方法的具体实现。通过接口,Circle 类可以使用 Drawable 接口中定义的默认方法和静态方法,而不需要自己实现这些方法。

2. 封装(Encapsulation)

封装类似于胶囊,将整个代码和所有数据绑定在一起形成一个单一的单元。所有的方法和变量都存储在同一个类名下,同一个类的对象可以使用它们。

示例
在一个 BankAccount 类中,封装了账户信息和操作方法。

public class BankAccount {
    private String accountNumber;
    private double balance;

    // 构造函数
    public BankAccount(String accountNumber, double initialBalance) {
        this.accountNumber = accountNumber;
        this.balance = initialBalance;
    }

    // 存款方法
    public void deposit(double amount) {
        if (amount > 0) {
            balance += amount;
        }
    }

    // 取款方法
    public boolean withdraw(double amount) {
        if (amount > 0 && amount <= balance) {
            balance -= amount;
            return true;
        }
        return false;
    }

    // 获取余额
    public double getBalance() {
        return balance;
    }
}

3. 多态(Polymorphism)

多态是指以不同的方式执行同一任务。一个方法可以用于不同的任务。多态分为编译时多态(方法重载)和运行时多态(方法重写)。

示例
draw 方法可以用于绘制不同的形状,如三角形、矩形或圆形。

interface Shape {
    void draw();
}

class Triangle implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing a triangle");
    }
}

class Rectangle implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing a rectangle");
    }
}

class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing a circle");
    }
}

public class PolymorphismExample {
    public static void main(String[] args) {
        Shape triangle = new Triangle();
        Shape rectangle = new Rectangle();
        Shape circle = new Circle();

        triangle.draw(); // Drawing a triangle
        rectangle.draw(); // Drawing a rectangle
        circle.draw(); // Drawing a circle
    }
}

4. 继承(Inheritance)

当一个类继承另一个类的某些属性和方法时,称为继承。继承关系中总是有一个超类(父类)和一个子类(子类)。子类继承超类的属性和方法。

示例
Animal 是超类,具有 eatsleep 方法。ReptileMammalHuman 是子类,继承了这些方法。

class Animal {
    public void eat() {
        System.out.println("Eating...");
    }

    public void sleep() {
        System.out.println("Sleeping...");
    }
}

class Reptile extends Animal {
    public void crawl() {
        System.out.println("Crawling...");
    }
}

class Mammal extends Animal {
    public void walk() {
        System.out.println("Walking...");
    }
}

class Human extends Mammal {
    public void speak() {
        System.out.println("Speaking...");
    }
}

public class InheritanceExample {
    public static void main(String[] args) {
        Reptile reptile = new Reptile();
        Mammal mammal = new Mammal();
        Human human = new Human();

        reptile.eat(); // Eating...
        reptile.sleep(); // Sleeping...
        reptile.crawl(); // Crawling...

        mammal.eat(); // Eating...
        mammal.sleep(); // Sleeping...
        mammal.walk(); // Walking...

        human.eat(); // Eating...
        human.sleep(); // Sleeping...
        human.walk(); // Walking...
        human.speak(); // Speaking...
    }
}

如何学习 Java?

Java 是最常用的编程语言之一,主要是因为 Java 自然多才多艺、可靠且兼容。如果你想开始编程职业生涯,拥有一项 Java 技能是非常有价值的。以下是一些入门建议:

  1. 从 Java 编程的基础开始(变量、数据类型、条件语句、数组、循环、函数)。
  2. 阅读 Java 编程书籍,以理解基本概念。
  3. 学习高级主题(面向对象编程、继承、抽象类、Java 接口、集合、异常处理、包装类)。
  4. 定期练习编码,从实践中学习。
  5. 阅读文章和最新的 Java 文档,保持更新。

Java 示例程序

Hello World 程序
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
不使用临时变量交换两个数字
public class SwapNumbers {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        System.out.println("Before swapping:");
        System.out.println("a = " + a);
        System.out.println("b = " + b);

        // 不使用临时变量交换两个数字
        a = a + b;
        b = a - b;
        a = a - b;

        System.out.println("After swapping:");
        System.out.println("a = " + a);
        System.out.println("b = " + b);
    }
}

希望这些信息对你有所帮助!

标签:指南,...,Java,void,初学者,println,public,out
From: https://blog.csdn.net/woshichenpi/article/details/143580889

相关文章

  • 2025最新-计算机毕业设计java基于Springboot的智慧教学平台的系统设计与实现
    一、项目介绍  基于SpringBoot的智慧教学平台系统设计与实现是一个复杂但充满挑战的项目,旨在通过现代软件开发技术优化教育流程,提升教学质量和管理效率。以下是对该系统的详细介绍:智慧教学平台是一款集成了多种功能的综合性教育管理系统,通过运用SpringBoot框架、MySQ......
  • javascript模块 (Module) 简介
    https://blog.csdn.net/chehec2010/article/details/119804381   随着ES6的出现,js模块已经成为正式的标准了。曾经为了解决js模块问题而发展起来的民间秘籍,requireJs(AMD)、SeaJs(CMD)、Node(CommonJs),已经或者不久的将来会成为历史。了解历史也是很重要的,因为正式标准就是......
  • 基于Java+SpringBoot心理测评心理测试系统功能实现三
    一、前言介绍:1.1项目摘要心理测评和心理测试系统在当代社会中扮演着越来越重要的角色。随着心理健康问题日益受到重视,心理测评和心理测试系统作为评估个体心理状态、诊断心理问题、制定心理治疗方案的工具,其需求和应用范围不断扩大。首先,现代社会节奏快速,竞争激烈,人们面临着来......
  • 基于Java+SpringBoot心理测评心理测试系统功能实现四
    一、前言介绍:1.1项目摘要心理测评和心理测试系统在当代社会中扮演着越来越重要的角色。随着心理健康问题日益受到重视,心理测评和心理测试系统作为评估个体心理状态、诊断心理问题、制定心理治疗方案的工具,其需求和应用范围不断扩大。首先,现代社会节奏快速,竞争激烈,人们面临着来......
  • Redis4:Redis的Java客户端
    欢迎来到“雪碧聊技术”CSDN博客!在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将不断探索Java的深邃世界,分享最新的技术动态、实战经验以及项目......
  • Java中数组“扩容”
    数组一旦创建是不能改变大小的!!!!!此处的数组"扩容"是看起来的像扩容的一种使用方式而已,不是真的改变数组大小.....可以实现,让数组用的时候感觉变大了....思路:其实创建了一个更大的数组,然后将之前数组元素拷贝大数组中,然后将大数组返回给你用。publicstaticvoidmai......
  • CSS弹性布局:灵活布局的终极指南
    在网页设计中,CSS弹性布局(Flexbox)是一个不可或缺的工具。它能帮助你轻松地排列和对齐元素,尤其是在响应式设计中表现出色。今天,我们就来深入探讨一下Flexbox的各个属性,让你彻底掌握这个强大的布局工具。一、什么是Flexbox?CSS弹性布局(Flexbox)是一个强大的布局模型,旨在......
  • 学习java的第三天,循环语句(for-while-do while),数组,随机数
    for循环for循环是我最喜欢使用的循环语句,清晰,简洁。##for循环的格式为:for(初始化值,如inti=0;循环条件,如i<10;重新赋值,如i++){ 代码块}注:1.初始化值必须为表达式,如i=0"for(i=0;i<3;i++)"或for(inti=0;i<3;i++),但不可以是一个单独的变量如for(i;i<3;i++)这样会报错!......
  • java计算机毕业设计最优网络购票系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在当今信息化快速发展的时代,网络购票已经成为人们获取票务的主要方式之一。随着互联网技术的不断进步以及人们出行需求的日益增长,传统的购票方式......
  • java计算机毕业设计在线小说系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着互联网技术的飞速发展,数字阅读已经成为人们获取知识和娱乐的重要方式之一。在线小说作为数字阅读的重要组成部分,拥有庞大的用户群体。据相关......