提交 025a17bf 编写于 作者: W wizardforcel

2019-11-26 11:45:44

上级 bf5f0c6c
......@@ -27,17 +27,17 @@ public class Car {
}
```
看上面的代码。 汽车对象状态(当前速度和名称)存储在字段中,并通过方法显示对象的行为(加速和停车)。 在此示例中,方法是 accelerator(),park()和 printCurrentSpeed()
看上面的代码。 汽车对象状态(当前速度和名称)存储在字段中,并通过方法显示对象的行为(加速和停车)。 在此示例中,方法是`accelerator()``park()``printCurrentSpeed()`
让我们在这些方法中实现一些功能。
1.每次调用加速方法时,我们将每小时增加 10 英里的当前速度。
1\. 每次调用加速方法时,我们将每小时增加 10 英里的当前速度。
2.调用驻车方法会将当前速度设置为零
2\. 调用驻车方法会将当前速度设置为零
3\. printCurrentSpeed 方法将显示汽车的速度。
3\. `printCurrentSpeed`方法将显示汽车的速度。
为了实现这三个要求,我们将创建一个名为 Car 的类并将文件存储为 Car.java
为了实现这三个要求,我们将创建一个名为`Car`的类并将文件存储为`Car.java`
```java
public class Car {
......@@ -68,7 +68,7 @@ public class Car {
## 类名
创建 Java 类时,必须遵循以下规则:**文件名和该类的名称必须等于**。 在我们的示例中– Car 类必须存储在名为`Car.java`的文件中。 Java 也是区分大小写的:用大写 C 编写的汽车与用小写 c 编写的汽车不同。
创建 Java 类时,必须遵循以下规则:**文件名和该类的名称必须相同**。 在我们的示例中 – `Car`类必须存储在名为`Car.java`的文件中。 Java 也是区分大小写的:用大写`C`编写的汽车与用小写`c`编写的汽车不同。
## Java 类构造函数
......@@ -80,7 +80,7 @@ public Car(String name) {
}
```
构造函数必须与类本身具有相同的名称。 它们可以带或不带参数。 此示例中的参数为“名称”。 我们使用如下构造函数创建一个新的 car 对象(我将在本教程的后面部分对此进行详细说明):
构造函数必须与类本身具有相同的名称。 它们可以带或不带参数。 此示例中的参数为“名称”。 我们使用如下构造函数创建一个新的`car`对象(我将在本教程的后面部分对此进行详细说明):
```java
Car audi = new Car("Audi");
......@@ -88,11 +88,11 @@ Car audi = new Car("Audi");
## Java 注释
您是否注意到第 11、16 和 21 行前面的//标记? 这就是我们用 Java 编写注释的方式。 执行程序时,标记为注释的行将被忽略。 您可以编写注释以进一步解释代码中发生的事情。 撰写评论是一种好习惯,它将帮助其他人理解您的代码。 稍后再返回代码时,它也将为您提供帮助。
您是否注意到第 11、16 和 21 行前面的`//`标记? 这就是我们用 Java 编写注释的方式。 执行程序时,标记为注释的行将被忽略。 您可以编写注释以进一步解释代码中发生的事情。 撰写评论是一种好习惯,它将帮助其他人理解您的代码。 稍后再返回代码时,它也将为您提供帮助。
## 创建对象
现在让我们继续我们的汽车示例。 我们将创建第二个名为 CarTest 的类,并将其存储到名为 CarTest.java 的文件中
现在让我们继续我们的汽车示例。 我们将创建第二个名为`CarTest`的类,并将其存储到名为`CarTest.java`的文件中
```java
public class CarTest {
......@@ -128,9 +128,9 @@ public class CarTest {
}
```
在上面的代码中,我们首先创建 2 个类型为 Car 的新对象– Audi 和 Nissan。 这是 Car 类的两个单独实例(两个不同的对象),当我们调用 Audi 对象的方法时,这不会影响 Nissan 对象。
在上面的代码中,我们首先创建 2 个类型为`Car`的新对象 – `Audi``Nissan`。 这是`Car`类的两个单独实例(两个不同的对象),当我们调用`Audi`对象的方法时,这不会影响`Nissan`对象。
执行 CarTest 的结果将如下所示:
执行`CarTest`的结果将如下所示:
```java
The current speed of Audi is 0 mpH
......@@ -139,6 +139,6 @@ The current speed of Nissan is 10 mpH
The current speed of Audi is 0 mpH
```
我鼓励您尝试使用该代码。 尝试向 Car 类添加新方法或编写新类。
我鼓励您尝试使用该代码。 尝试向`Car`类添加新方法或编写新类。
在我们的下一个教程中,您将了解有关面向对象编程的[概念的更多信息。](https://javatutorial.net/java-oop)
\ No newline at end of file
在我们的下一个教程中,您将了解有关面向对象编程的[概念的更多信息](https://javatutorial.net/java-oop)
\ No newline at end of file
......@@ -4,21 +4,21 @@
遵循本教程可了解面向对象编程的原理,并编写可重用和简洁的代码
本文旨在解释有关 OOP 的原理和概念,以及在讨论 OOP 时您需要了解的 4 个主要术语:封装,继承,抽象和多态。 尽管这些原则对于每种面向对象的编程语言(例如 Java,Python,C ++,Ruby 等)都具有完全的威力,但我将提供 Java 中的示例。 为什么? 因为首先是 Java 教程网站,其次 Java 是面向对象的,所以 Java 中的所有东西都是对象。 等待! 您可能不会说诸如`int``double``long`等原始类型。 是的,是的,但是即使基本类型也具有 Java 中的 Object 表示形式。 `int``Integer``double``Double`,依此类推。
本文旨在解释有关 OOP 的原理和概念,以及在讨论 OOP 时您需要了解的 4 个主要术语:封装,继承,抽象和多态。 尽管这些原则对于每种面向对象的编程语言(例如 Java,Python,C++,Ruby 等)都具有完全的威力,但我将提供 Java 中的示例。 为什么? 因为首先是 Java 教程网站,其次 Java 是面向对象的,所以 Java 中的所有东西都是对象。 等待! 您可能不会说诸如`int``double``long`等原始类型。 是的,是的,但是即使基本类型也具有 Java 中的 Object 表示形式。 `int``Integer``double``Double`,依此类推。
也准备在下次 Java 求职面试中遇到面向对象的问题。 它们是如此普遍,以至于几乎有 100% 的机会会询问您有关一项或多项 OOP 原则的信息。
## 什么是面向对象
[Wikipedia 将 OOP](https://en.wikipedia.org/wiki/Object-oriented_programming) 定义为:“基于对象的概念的编程示例,其中可能包含字段形式的字段,通常称为 _ 属性;_ 和程序形式的代码,通常称为 _ 方法。”_
[Wikipedia 将 OOP](https://en.wikipedia.org/wiki/Object-oriented_programming) 定义为:基于对象的概念的编程示例,其中可能包含字段形式的字段,通常称为属性;和程序形式的代码,通常称为方法。
面向对象编程(OOP)是一种编程语言模型,它使用[对象](https://javatutorial.net/java-objects-and-classes-tutorial)和数据作为核心组件。 如果您想了解更多细节并更好地理解类和对象,请参阅本主题的详细教程。 单击此处的[首先阅读它](https://javatutorial.net/java-objects-and-classes-tutorial)
面向对象编程(OOP)是一种编程语言模型,它使用[对象](https://javatutorial.net/java-objects-and-classes-tutorial)和数据作为核心组件。 如果您想了解更多细节并更好地理解类和对象,请参阅本主题的详细教程。 单击此处的[首先阅读它](https://javatutorial.net/java-objects-and-classes-tutorial)
![](img/d01cef15a8ac979eee8097725dd7b9c9.jpg)
OOP 背后的主要思想是用对象而不是动作或功能来表示数据和逻辑。 可以将对象视为现实生活中的对象,例如汽车,建筑物,动物,苹果等。还有诸如 HttpConnection 或 UserDataParser 之类的抽象对象(我们看不到或不能吃的东西)。 所有这些都具有可操纵和访问存储在其中的数据的属性和方法。 最终,我们可以将所有内容“转换”为对象。
OOP 背后的主要思想是用对象而不是动作或函数来表示数据和逻辑。 可以将对象视为现实生活中的对象,例如汽车,建筑物,动物,苹果等。还有诸如`HttpConnection``UserDataParser`之类的抽象对象(我们看不到或不能吃的东西)。 所有这些都具有可操纵和访问存储在其中的数据的属性和方法。 最终,我们可以将所有内容“转换”为对象。
那么,总体上拥有所有这些对象和 OOP 有什么大不了的呢? 嗯,没有人能阻止您在一个具有数百个功能的大文件中编写 Java 程序(当然,除了团队负责人或老板),但是一旦遵循了面向对象编程的原理,您将产生可重用,可维护,可扩展和可重用的代码。 干净的代码。
那么,总体上拥有所有这些对象和 OOP 有什么大不了的呢? 嗯,没有人能阻止您在一个具有数百个函数的大文件中编写 Java 程序(当然,除了团队负责人或老板),但是一旦遵循了面向对象编程的原理,您将产生可重用,可维护,可扩展和可重用的代码。 干净的代码。
这是 **4 个主要的 Java OOP 原则**
......@@ -28,12 +28,12 @@ OOP 背后的主要思想是用对象而不是动作或功能来表示数据和
## 继承
继承是一种 OOP 功能,它允许 Java 类从其他类派生。 阅读完整的 [Java 继承示例](https://javatutorial.net/java-inheritance-example)了解更多详细信息。
继承是一种 OOP 特性,它允许 Java 类从其他类派生。 阅读完整的 [Java 继承示例](https://javatutorial.net/java-inheritance-example)了解更多详细信息。
## 抽象
抽象是向用户隐藏实现细节的过程。 Оnly 功能将提供给用户。 阅读完整的 [Java 抽象示例](https://javatutorial.net/java-abstraction-example)了解更多详细信息。
抽象是向用户隐藏实现细节的过程。只有函数将提供给用户。 阅读完整的 [Java 抽象示例](https://javatutorial.net/java-abstraction-example)了解更多详细信息。
## 多态
Java 中的多态允许类的子类定义其自己的独特行为,而又共享父类的某些相同功能。 阅读完整的 [Java 多态示例](https://javatutorial.net/java-polymorphism-example),了解更多详细信息。
\ No newline at end of file
Java 中的多态允许类的子类定义其自己的独特行为,而又共享父类的某些相同函数。 阅读完整的 [Java 多态示例](https://javatutorial.net/java-polymorphism-example),了解更多详细信息。
\ No newline at end of file
......@@ -21,7 +21,7 @@
Java 封装示例
下面的示例演示 Java 中的封装。 `Car`类具有两个字段-`name``topSpeed`。 两者都声明为私有,这意味着它们不能在类外部直接访问。 吸气和设置方法:`getName``setName``setTopSpeed`等已声明为公开。 这些方法对“外部人员”开放,可用于更改和从`Car`对象检索数据。 请注意,我们有一种方法可以设置车辆的最高速度,而有两种吸气方法可以以 MPH 或 KMH 检索最大速度值。 这就是封装的作用–它隐藏了实现并为我们提供了所需的值
下面的示例演示 Java 中的封装。 `Car`类具有两个字段 - `name``topSpeed`。 两者都声明为私有,这意味着它们不能在类外部直接访问。 吸气和设置方法:`getName``setName``setTopSpeed`等已声明为公开。 这些方法对“外部人员”开放,可用于更改和从`Car`对象检索数据。 请注意,我们有一种方法可以设置车辆的最高速度,而有两种吸气方法可以以 MPH 或 KMH 检索最大速度值。 这就是封装的作用–它隐藏了实现并为我们提供了所需的值
```java
package net.javatutorial;
......@@ -57,7 +57,7 @@ public class Car {
```
主程序使用给定名称创建`Car`对象,并使用 setter 方法存储此实例的最高速度。 现在,我们可以轻松获得 MPH 或 KMH 中的速度,而无需关心 Car 类中的速度转换方式。
主程序使用给定名称创建`Car`对象,并使用 setter 方法存储此实例的最高速度。 现在,我们可以轻松获得 MPH 或 KMH 中的速度,而无需关心`Car`类中的速度转换方式。
```java
package net.javatutorial;
......
......@@ -39,7 +39,7 @@ public class SamsungWashingMachine implements WashingMachine {
}
```
我们在类声明中使用`implements`关键字。 我们需要实现 startButtonPressed 方法(为它提供一些功能),否则我们的类将无法编译。
我们在类声明中使用`implements`关键字。 我们需要实现`startButtonPressed`方法(为它提供一些功能),否则我们的类将无法编译。
请注意,您可以在一类中实现多个接口。 您只需要在类声明中用逗号分隔接口名称,如下所示:
......@@ -185,13 +185,13 @@ Yummy! you eat some raspberry
`WoodsSurvival`类中,我们首先创建一个`FoundObject`类型的数组。 我们稍后创建的三个对象的类型也都是`FoundObject`,因此我们可以将它们放在同一数组中。 关注本文,以了解有关 [Java 数组](https://javatutorial.net/java-array)的更多信息。
迭代数组时,我们检查当前对象是否为`Eatable`类型。 我们在`instanceof` keyford 的帮助下进行此操作。 如果两个对象属于同一类型,则`instanceof`返回 true。 在我们的案例中,使用`instanceof Eatable`进行检查时,苹果和树莓将返回 true,因为两者均实现了`Eatable`接口。 为了能够执行`eat()`方法,我们需要首先将对象显式类型转换为`Eatable`。 我们使用以下代码行实现此目的:
迭代数组时,我们检查当前对象是否为`Eatable`类型。 我们在`instanceof keyford`的帮助下进行此操作。 如果两个对象属于同一类型,则`instanceof`返回`true`。 在我们的案例中,使用`instanceof Eatable`进行检查时,苹果和树莓将返回 true,因为两者均实现了`Eatable`接口。 为了能够执行`eat()`方法,我们需要首先将对象显式类型转换为`Eatable`。 我们使用以下代码行实现此目的:
```java
((Eatable) currentObject).eat();
```
我们无法执行石头对象的 eat 方法,因为它不是`Eatable`类型。
我们无法执行石头对象的`eat`方法,因为它不是`Eatable`类型。
## 结论
......
......@@ -13,7 +13,7 @@
以下是 Android Studio 的一些有趣功能:
* 它提供了一个基于 Gradle 的灵活构建系统。
* 它还支持 C ++和 NDK
* 它还支持 C++和 NDK
* 在不构建新 APK 的情况下运行您的应用。
* 提供虚拟设备来运行和测试您的应用
......
......@@ -22,7 +22,7 @@ Android 是适用于多种不同设备的操作系统,例如平板电脑和智
## Android 活动
活动类是 Android 的重要组成部分。 活动就像带有用户界面的单个屏幕一样,就像 Java 的[框架一样。 我们知道任何用 Java 或 C ++编写的可执行程序都具有 main()方法,并且程序是通过 main()方法启动的。 代替主要方法,Android 具有不同的活动概念。](https://javatutorial.net/swing-jframe-basics-create-jframe)
活动类是 Android 的重要组成部分。 活动就像带有用户界面的单个屏幕一样,就像 Java 的[框架一样。 我们知道任何用 Java 或 C++编写的可执行程序都具有 main()方法,并且程序是通过 main()方法启动的。 代替主要方法,Android 具有不同的活动概念。](https://javatutorial.net/swing-jframe-basics-create-jframe)
大多数应用程序包含多个屏幕,这意味着它们具有多个活动。 活动已在应用的清单文件中注册。 每个活动都有其自己的生命周期,您必须正确管理。
......
......@@ -6,7 +6,7 @@
## Android 活动
Activity 是 Android 应用程序开发的基本组成部分之一。 就像带有用户界面的单个屏幕一样。 `ContextThemeWrapper`是 Android 活动的超类。 活动是 Android 应用程序的主要切入点,就像用 Java 或 C ++编写的程序的主要方法一样。 一个活动与用户进行交互,因此它创建了一个放置 UI 元素的窗口。 一个 Android 应用程序可以包含多个活动,这意味着可以相互交互的许多不同屏幕。
Activity 是 Android 应用程序开发的基本组成部分之一。 就像带有用户界面的单个屏幕一样。 `ContextThemeWrapper`是 Android 活动的超类。 活动是 Android 应用程序的主要切入点,就像用 Java 或 C++编写的程序的主要方法一样。 一个活动与用户进行交互,因此它创建了一个放置 UI 元素的窗口。 一个 Android 应用程序可以包含多个活动,这意味着可以相互交互的许多不同屏幕。
## 活动生命周期
......
......@@ -19,14 +19,14 @@
## 为什么要使用 Java?
* **Java 简单易学** – 它的设计语法与 C/C ++类似。 每个人都可以学习。 您不需要大学学位或昂贵的课程,只需继续阅读本教程,您便会很快建立起来。
* **Java 简单易学** – 它的设计语法与 C/C++类似。 每个人都可以学习。 您不需要大学学位或昂贵的课程,只需继续阅读本教程,您便会很快建立起来。
* **Java 是安全的** – Java Applet 在这里是一个例外,我们将在另一篇文章中讨论。
* **Java 是可移植的** - 编写一次即可在任何地方运行。 您的代码将在 Windows,Linux 和 Mac 上运行,而无需进行任何更改。
* **Java 是可重用的** – 您将在线查找大量库。 您无需成为每个编程主题的专家,只需找到合适的库并使用它即可。
## Java 与其他编程语言相比如何?
有许多编程语言,例如 C/C ++,PHP,PEARL 等。它们通常专门致力于最好地完成特定任务。 是什么使 Java 与众不同? Java 是面向对象的,基于类的编程语言,并且是通用的! 您可以编写桌面应用程序,前端和后端服务器逻辑,连接和操作数据库,通过网络发送和接收对象或为手机或 Android 设备编写移动应用程序。 您可以使用 Java 进行任何编程!
有许多编程语言,例如 C/C++,PHP,PEARL 等。它们通常专门致力于最好地完成特定任务。 是什么使 Java 与众不同? Java 是面向对象的,基于类的编程语言,并且是通用的! 您可以编写桌面应用程序,前端和后端服务器逻辑,连接和操作数据库,通过网络发送和接收对象或为手机或 Android 设备编写移动应用程序。 您可以使用 Java 进行任何编程!
请不要将 Java 与 JavaScript 混淆! JavaScript 是 Web 浏览器解释的脚本语言,而不是独立的编程语言。 Java 和 JavaScript 除了名称外没有其他共同之处。
......
......@@ -12,7 +12,7 @@ Java 虚拟机问题在求职面试中非常受欢迎。 采访者喜欢提出
## 什么是 Java 虚拟机
Java 被设计为可在各种平台上运行,其概念为“一次编写,随处运行”。 这是什么意思? 例如,与像 C ++这样的编程语言不同,在 C ++中,代码是针对特定平台进行编译并在其上本地运行的,而 Java 源代码则首先被编译为字节码- .class 文件。 编译后,类文件将由虚拟机(VM)解释。 看下图
Java 被设计为可在各种平台上运行,其概念为“一次编写,随处运行”。 这是什么意思? 例如,与像 C++这样的编程语言不同,在 C++中,代码是针对特定平台进行编译并在其上本地运行的,而 Java 源代码则首先被编译为字节码- .class 文件。 编译后,类文件将由虚拟机(VM)解释。 看下图
![Run Java bytecode on different platforms - the "write once, run anywhere" concept](img/d6063e9fd37d275ba1f59efb6ad449ae.jpg)
......
......@@ -14,7 +14,7 @@
因此,垃圾收集功能会找出这些对象并自动将其从内存中删除并删除它们,从而实现高效的内存使用和管理。
如果要用 C 语言进行相同的垃圾收集和优化,则可以使用 free()函数,而在 C ++中,则可以使用 delete()方法。 因此,Java 中此过程实现了自动化,从而为用户减少了麻烦。
如果要用 C 语言进行相同的垃圾收集和优化,则可以使用 free()函数,而在 C++中,则可以使用 delete()方法。 因此,Java 中此过程实现了自动化,从而为用户减少了麻烦。
从技术上讲,Java 垃圾收集处理的是跟踪 [JVM(Java 虚拟机)](https://javatutorial.net/jvm-explained)堆空间中的每个对象,并删除(删除/取消分配)未使用的对象。
......
......@@ -16,7 +16,7 @@ public enum Macronutrients {
Java 在 1.5 中引入了 enum 数据类型。
其他编程语言(例如 C ++甚至 C)也具有枚举数据类型,但是在 Java 中,它更强大。 例如,在 C / C ++中,枚举只是整数值的列表,而在 Java 中,它是扩展 Enum 的类本身,并且通常对读取和写入都更好。 最重要的是,由于枚举是一个类的事实,它还提供了允许在枚举成员上进行迭代的不同方法。
其他编程语言(例如 C++甚至 C)也具有枚举数据类型,但是在 Java 中,它更强大。 例如,在 C / C++中,枚举只是整数值的列表,而在 Java 中,它是扩展 Enum 的类本身,并且通常对读取和写入都更好。 最重要的是,由于枚举是一个类的事实,它还提供了允许在枚举成员上进行迭代的不同方法。
在 Java 中,您还可以使用 name()方法,该方法将为您提供枚举数据类型的成员值:
......
......@@ -14,7 +14,7 @@ byte byteVariable = 24; // uses 8 bits of memory
在上面的示例中,我们将数字 24 存储在具有不同原始类型的 3 个变量中。 注意这三种类型的内存分配量。 `byte``int`小 4 倍,比`long`小 8 倍
如果您来自其他编程语言(例如 C/C ++),请注意 Java 中没有未签名的数据类型。 Java 中的所有原始类型均已签名。
如果您来自其他编程语言(例如 C/C++),请注意 Java 中没有未签名的数据类型。 Java 中的所有原始类型均已签名。
## 字节
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册