Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
jtn-zh
提交
ea2e586a
J
jtn-zh
项目概览
OpenDocCN
/
jtn-zh
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jtn-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
ea2e586a
编写于
11月 26, 2019
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2019-11-26 12:28:11
上级
025a17bf
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
29 addition
and
29 deletion
+29
-29
docs/16.md
docs/16.md
+9
-9
docs/17.md
docs/17.md
+3
-3
docs/18.md
docs/18.md
+1
-1
docs/19.md
docs/19.md
+3
-3
docs/20.md
docs/20.md
+13
-13
未找到文件。
docs/16.md
浏览文件 @
ea2e586a
...
@@ -14,18 +14,18 @@ Java 中的“所有类的母亲”是`Object`类。 Java 中的每个类都继
...
@@ -14,18 +14,18 @@ Java 中的“所有类的母亲”是`Object`类。 Java 中的每个类都继
![
All Classes in the Java Platform are Descendants of Object
](
img/2aba758c937fce23c46327191be945c2.jpg
)
![
All Classes in the Java Platform are Descendants of Object
](
img/2aba758c937fce23c46327191be945c2.jpg
)
Java 平台中的所有类都是对象的后代(
imagesourtesy
[
Oracle
](
https://oracle.com
)
)
Java 平台中的所有类都是对象的后代(
图像来自
[
Oracle
](
https://oracle.com
)
)
Java 具有单个继承模型,这意味着每个类都只有一个并且只有一个直接超类。
Java 具有单个继承模型,这意味着每个类都只有一个并且只有一个直接超类。
子类继承其父级的所有
_ 公共 _ 和 _ 受保护的 _ 成员,无论该子类位于哪个包中。如果该子类与其父级位于同一包中,则它也继承 父成员的 _ 包私有 _
成员。 您可以按原样使用继承的成员,替换它们,隐藏它们,或用新成员补充它们:
子类继承其父级的所有
公共和受保护的成员,无论该子类位于哪个包中。如果该子类与其父级位于同一包中,则它也继承父成员的私有
成员。 您可以按原样使用继承的成员,替换它们,隐藏它们,或用新成员补充它们:
*
继承的字段可以像其他任何字段一样直接使用。
*
继承的字段可以像其他任何字段一样直接使用。
*
您可以在子类中声明一个与超类中的名字相同的字段,因此
_ 隐藏了 _
(不推荐)。
*
您可以在子类中声明一个与超类中的名字相同的字段,因此
隐藏了
(不推荐)。
*
您可以在子类中声明不在超类中的新字段。
*
您可以在子类中声明不在超类中的新字段。
*
继承的方法可以直接使用。
*
继承的方法可以直接使用。
*
您可以在子类中编写一个新的
_ 实例 _ 方法,该方法具有与超类中的签名相同的签名,因此 _ 将覆盖 _
。
*
您可以在子类中编写一个新的
实例方法,该方法具有与超类中的签名相同的签名,因此将覆盖
。
*
您可以在子类中编写一种新的
_ 静态 _ 方法,该方法具有与超类中的签名相同的签名,因此 _ 隐藏了 _
。
*
您可以在子类中编写一种新的
静态方法,该方法具有与超类中的签名相同的签名,因此隐藏了
。
*
您可以在子类中声明不在超类中的新方法。
*
您可以在子类中声明不在超类中的新方法。
*
您可以编写一个隐式或使用关键字
`super`
来调用超类的构造函数的子类构造函数。
*
您可以编写一个隐式或使用关键字
`super`
来调用超类的构造函数的子类构造函数。
...
@@ -33,7 +33,7 @@ Java 具有单个继承模型,这意味着每个类都只有一个并且只有
...
@@ -33,7 +33,7 @@ Java 具有单个继承模型,这意味着每个类都只有一个并且只有
## Java 继承示例
## Java 继承示例
在下面的示例中,我们创建 3 个类。 超类
`Point`
表示二维空间中具有
x 和 y
坐标的点。
在下面的示例中,我们创建 3 个类。 超类
`Point`
表示二维空间中具有
`x`
和
`y`
坐标的点。
```
java
```
java
package
net.javatutorial
;
package
net.javatutorial
;
...
@@ -70,7 +70,7 @@ public class Point {
...
@@ -70,7 +70,7 @@ public class Point {
```
```
`ColoredPoint`
是一个子类,它扩展了
`Point`
的所有属性和方法,并添加了一个附加字段
–
`colorName`
。 注意这是如何完成的–我们使用关键字
**扩展**
来告诉我们要从哪个类派生
`ColoredPoint`
是一个子类,它扩展了
`Point`
的所有属性和方法,并添加了一个附加字段
–
`colorName`
。 注意这是如何完成的–我们使用关键字
`extends`
来告诉我们要从哪个类派生
```
java
```
java
package
net.javatutorial
;
package
net.javatutorial
;
...
@@ -97,13 +97,13 @@ public class ColoredPoint extends Point {
...
@@ -97,13 +97,13 @@ public class ColoredPoint extends Point {
```
```
最后是一个测试继承的程序。 首先,我们创建一个类型为
`ColoredPoint`
的新
`Point`
。 请注意关键字
**instanceof 的用法。 这样,我们可以检查对象是否为某种类型。 一旦确定点的类型为`ColoredPoint`,就可以使用以下方法显式地进行类型转换:**
最后是一个测试继承的程序。 首先,我们创建一个类型为
`ColoredPoint`
的新
`Point`
。 请注意关键字
`instanceof`
的用法。 这样,我们可以检查对象是否为某种类型。 一旦确定点的类型为
`ColoredPoint`
,就可以使用以下方法显式地进行类型转换:
```
java
```
java
ColoredPoint
coloredPoint
=
(
ColoredPoint
)
point
;
ColoredPoint
coloredPoint
=
(
ColoredPoint
)
point
;
```
```
现在我们可以访问新属性
colorName
现在我们可以访问新属性
`colorName`
```
java
```
java
package
net.javatutorial
;
package
net.javatutorial
;
...
...
docs/17.md
浏览文件 @
ea2e586a
...
@@ -6,19 +6,19 @@
...
@@ -6,19 +6,19 @@
## 什么是抽象
## 什么是抽象
抽象是向用户隐藏实现细节的过程。
Оnly
功能将提供给用户。 在 Java 中,使用抽象类和接口来实现抽象。 我们对 Java 接口有更详细的说明,如果您需要有关接口的更多信息,请
[
首先阅读本教程
](
https://javatutorial.net/java-interface-example
)
。
抽象是向用户隐藏实现细节的过程。
只有
功能将提供给用户。 在 Java 中,使用抽象类和接口来实现抽象。 我们对 Java 接口有更详细的说明,如果您需要有关接口的更多信息,请
[
首先阅读本教程
](
https://javatutorial.net/java-interface-example
)
。
抽象是
[
面向对象编程(OOP)
](
https://javatutorial.net/java-oop
)
背后的四个主要概念之一。 OOP 问题在求职面试中很常见,因此您可能会在下次 Java 求职面试中遇到有关抽象的问题。
抽象是
[
面向对象编程(OOP)
](
https://javatutorial.net/java-oop
)
背后的四个主要概念之一。 OOP 问题在求职面试中很常见,因此您可能会在下次 Java 求职面试中遇到有关抽象的问题。
## Java 抽象示例
## Java 抽象示例
举一个抽象的例子,我们将创建一个名为
`Employee`
的超类和两个子类
-
`Contractor`
和
`FullTimeEmployee`
。 这两个子类都有共同的属性可以共享,例如雇员的姓名和每小时将支付给该人的金额。 承包商和全职员工之间的主要区别是-
他们在公司工作的时间。 全职员工每天持续工作 8 个小时,承包商的工作时间可能会有所不同。
举一个抽象的例子,我们将创建一个名为
`Employee`
的超类和两个子类
-
`Contractor`
和
`FullTimeEmployee`
。 这两个子类都有共同的属性可以共享,例如雇员的姓名和每小时将支付给该人的金额。 承包商和全职员工之间的主要区别是 -
他们在公司工作的时间。 全职员工每天持续工作 8 个小时,承包商的工作时间可能会有所不同。
![
Java abstract class example
](
img/7d6c855cb50cb5ae300a6e65dbb450c4.jpg
)
![
Java abstract class example
](
img/7d6c855cb50cb5ae300a6e65dbb450c4.jpg
)
Java 抽象类示例
Java 抽象类示例
首先创建超类
`Employee`
。 注意在类定义中
**抽象**
关键字的用法。 这将类标记为抽象,这意味着它不能直接实例化。 我们将称为
`calculateSalary()`
的方法定义为抽象方法。 这样,您可以将此方法的实现留给
`Employee`
类的继承者。
首先创建超类
`Employee`
。 注意在类定义中
`abstract`
关键字的用法。 这将类标记为抽象,这意味着它不能直接实例化。 我们将称为
`calculateSalary()`
的方法定义为抽象方法。 这样,您可以将此方法的实现留给
`Employee`
类的继承者。
```
java
```
java
package
net.javatutorial
;
package
net.javatutorial
;
...
...
docs/18.md
浏览文件 @
ea2e586a
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
Java 多态示例
Java 多态示例
当我们调用
makeSound()
方法时,通用动物类将输出一些抽象文本:
当我们调用
`makeSound()`
方法时,通用动物类将输出一些抽象文本:
```
java
```
java
package
net.javatutorial
;
package
net.javatutorial
;
...
...
docs/19.md
浏览文件 @
ea2e586a
...
@@ -4,13 +4,13 @@
...
@@ -4,13 +4,13 @@
本文通过示例演示了 Java 中方法重载和方法覆盖之间的区别
本文通过示例演示了 Java 中方法重载和方法覆盖之间的区别
**方法重载**
和
**方法
重载**
都是在各种 Java 实现中高度使用的 OOP(面向对象编程)概念。 在本文中,我们已经写了关于
[
OPT]的 [4 个主要概念的文章。 如果您不熟悉 OOP,请先查看此文章。
](
https://javatutorial.net/java-oop
)
**方法重载**
和
**方法
覆盖**
都是在各种 Java 实现中高度使用的 OOP(面向对象编程)概念。 在本文中,我们已经写了关于 OOP 的 4 个主要概念的文章。 如果您不熟悉 OOP,请先查看
[
此文章
](
https://javatutorial.net/java-oop
)
。
方法重载与方法重载是一个常见的 Java 工作面试问题。 去面试,我们不能不知道有什么区别。
方法重载与方法重载是一个常见的 Java 工作面试问题。 去面试,我们不能不知道有什么区别。
## 什么是方法重载?
## 什么是方法重载?
如下面的示例所示,方法重载使我们能够使用
**相同名称,相同或不同返回类型**
的多个方法。 方法重载的重要之处在于,对于同一个返回类型,所有这些方法必须具有
**不同的参数
。 通常的做法是保留参数最多的方法的实现,而其他方法(参数较少的)仅重定向到“ big”方法,为缺少的参数提供默认值,如下所示:**
如下面的示例所示,方法重载使我们能够使用
**相同名称,相同或不同返回类型**
的多个方法。 方法重载的重要之处在于,对于同一个返回类型,所有这些方法必须具有
**不同的参数
**
。 通常的做法是保留参数最多的方法的实现,而其他方法(参数较少的)仅重定向到较多方法,为缺少的参数提供默认值,如下所示:
```
java
```
java
public
int
calculate
(
int
data
[])
{
public
int
calculate
(
int
data
[])
{
...
@@ -104,4 +104,4 @@ public class Dog extends Animal{
...
@@ -104,4 +104,4 @@ public class Dog extends Animal{
}
}
```
```
请注意@Override 注释的用法。 这不是强制性的,但是最好对被覆盖的方法进行注释,以提高代码的可读性。
请注意
`@Override`
注释的用法。 这不是强制性的,但是最好对被覆盖的方法进行注释,以提高代码的可读性。
\ No newline at end of file
\ No newline at end of file
docs/20.md
浏览文件 @
ea2e586a
...
@@ -6,7 +6,7 @@ Java 中的控制流语句允许您在满足特殊条件时运行或跳过代码
...
@@ -6,7 +6,7 @@ Java 中的控制流语句允许您在满足特殊条件时运行或跳过代码
## `if`语句
## `if`语句
Java 中的
`
`if''语句的工作原理与大多数编程语言完全相同。 借助“如果”,您可以选择在满足预定义条件时执行特定的代码块。 Java 中“ if”
语句的结构如下所示:
Java 中的
`
if`
语句的工作原理与大多数编程语言完全相同。 借助
`if`
,您可以选择在满足预定义条件时执行特定的代码块。 Java 中
`if`
语句的结构如下所示:
```
java
```
java
if
(
condition
)
{
if
(
condition
)
{
...
@@ -14,7 +14,7 @@ if (condition) {
...
@@ -14,7 +14,7 @@ if (condition) {
}
}
```
```
条件是布尔值。 布尔值意味着它可以是
true 或 false
。 例如,您可以将数学方程式作为条件。 看这个完整的例子:
条件是布尔值。 布尔值意味着它可以是
`true`
或
`false`
。 例如,您可以将数学方程式作为条件。 看这个完整的例子:
```
java
```
java
public
class
FlowControlExample
{
public
class
FlowControlExample
{
...
@@ -36,23 +36,23 @@ Peter is 2 years old
...
@@ -36,23 +36,23 @@ Peter is 2 years old
Peter
is
a
baby
Peter
is
a
baby
```
```
在上面的示例中,我们检查年龄是否小于 4。将年龄设置为 2,布尔条件
2 < 4 为 true,结果我们打印“ Peter is a baby”。 如果我们将年龄更改为大于 3 的任何值,则该块中的代码将不再执行,并且不会打印“彼得是婴儿”
。
在上面的示例中,我们检查年龄是否小于 4。将年龄设置为 2,布尔条件
`2 < 4`
为
`true`
,结果我们打印
`"Peter is a baby"`
。 如果我们将年龄更改为大于 3 的任何值,则该块中的代码将不再执行,并且不会打印
`"Peter is a baby"`
。
## Java 中的比较运算符
## Java 中的比较运算符
使用此运算符创建布尔结果
使用此运算符创建布尔结果
<
小于
`<`
小于
< =
小于或等于
`<=`
小于或等于
>
大于
`>`
大于
> =
大于或等于
`>=`
大于或等于
==
等于
`==`
等于
!=
等于
`!=`
不
等于
## Java 中的条件运算符
## Java 中的条件运算符
...
@@ -105,9 +105,9 @@ Peter is 10 years old
...
@@ -105,9 +105,9 @@ Peter is 10 years old
Peter
is
not
a
baby
anymore
Peter
is
not
a
baby
anymore
```
```
因为我们给年龄的值大于 3,所以执行
else
语句
因为我们给年龄的值大于 3,所以执行
`else`
语句
我将再展示一个带有
“ if else”
语句和条件运算符的示例
我将再展示一个带有
`if else`
语句和条件运算符的示例
```
java
```
java
public
class
FlowControlExample
{
public
class
FlowControlExample
{
...
@@ -132,7 +132,7 @@ public class FlowControlExample {
...
@@ -132,7 +132,7 @@ public class FlowControlExample {
## `switch`语句
## `switch`语句
在某些情况下,您可以避免在代码中使用多个 if-s 并使代码看起来更好。 为此,可以使用
switch
语句。 看下面的 java `switch`示例
在某些情况下,您可以避免在代码中使用多个 if-s 并使代码看起来更好。 为此,可以使用
`switch`
语句。 看下面的 java
`switch`
示例
```
java
```
java
public
class
SwitchExample
{
public
class
SwitchExample
{
...
@@ -156,6 +156,6 @@ public class SwitchExample {
...
@@ -156,6 +156,6 @@ public class SwitchExample {
}
}
```
```
`
switch
`
有一把
钥匙和一个或多个箱子。 在我们的示例中,键为 numOfAngles ,当我们将 3、4 和 5 用作 switch 语句的值时,我们处理停止点。 如果我们传递的值不同于 3、4 或 5 ,则默认执行。 另请注意,在每种情况下,中断。 如果我们不包括 break
,则程序将运行到下一种情况。 例如,如果我们删除情况 3 的中断,则在上面的示例中将执行情况 3 和情况 4。
`switch`
有一把
键和一个或多个情况。 在我们的示例中,键为
`numOfAngles`
,当我们将 3、4 和 5 用作
`switch`
语句的值时,我们处理停止点。 如果我们传递的值不同于 3、4 或 5 ,则默认执行。 另请注意,在每种情况下,中断。 如果我们不包括
`break`
,则程序将运行到下一种情况。 例如,如果我们删除情况 3 的中断,则在上面的示例中将执行情况 3 和情况 4。
在我的下一个教程
[
Java 循环
](
http://javatutorial.net/java-loops
"Java Loops"
)
中,我将解释如何在 Java 中使用循环。
在我的下一个教程
[
Java 循环
](
http://javatutorial.net/java-loops
"Java Loops"
)
中,我将解释如何在 Java 中使用循环。
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录