课时11:综合实战:简单Java类

简介: 本次分享的主题是综合实战:简单 Java 类。主要分为两个部分:1.简单 Java 类的含义2.简单 Java 类的开发

课时11:综合实战:简单Java类


摘要:本次分享的主题是综合实战:简单 Java 类。主要分为两个部分:

1.简单 Java 的含义

2.简单 Java 类的开发

 

接下来看一个综合性的例子,称之为“简单 Java 类”。实际上简单 Java 类的概念是非常重要的。在大家今后进行项目开发与设计的过程中,简单 Java 类将作为一个不可或缺的组成部分存在。


逐渐接触到正规的项目设计时,会发现简单 Java 类无处不在。虽然在实际应用中可能会产生一系列的变化,但总的来说只要有编写程序的地方简单 Java 类就会存在,并且会一直伴随着我们。

 

01.简单 Java 类的含义

 

什么叫简单 Java 类呢?简单来阐述一下这个概念。关于这个概念的基本内容之前已经讨论过了,现在主要想结合这个程序来进一步说明。所谓的简单 Java 类指的是能够描述某一类信息的程序实体。


比如描述一个人的信息、一本书的信息、一个部门的信息,或者一个雇员的信息,这样的实体并不需要包含特别复杂的逻辑操作。也就是说它可能不会包含复杂的 For 循环或其他复杂的条件判断,而只是作为一个信息存储的媒介存在。那么仅作为一种信息存储的媒介,这就是简单 Java 类的一个基本概念。

 

02.简单 Java 类的开发

 

到底如何进行简单 Java 类的开发呢?接下来简要地讨论一下。对于简单 Java 类而言其核心的开发结构如下,这是第一部分结构,后续还会有扩充,到时候再详细说。


那么关于其主要的核心结构,第一点请记住类名称一定要有意义,能够明确地描述某一类产品或某一类事物。第二点类中的所有属性都必须使用 Private 关键字进行封装。同时封装后的属性必须提供对应的 Setter  Getter 方法。


注意这里说的“必须”指的是在简单 Java 类的规范中这是必要的,不要片面地认为简单 Java 类就是简单地写写 Setter Getter 方法就过去了。简单 Java 类的核心在于它是对一些事物或概念的抽象描述。

那么类中可以提供无数个构造方法,但是必须保留一个无参构造方法。并且类中不允许出现任何的输出语句,所有内容的获取必须通过返回语句来实现。


举个例子来说,假如我现在碰到一个人,他是个小偷,我正在抓他,我问他叫什么名字,他却在心里默念。这是什么意思呢?就像我问你问题,寻求信息,而你却只在心里自己回答,没有告诉我一样。你应该告诉我:“我叫姜家正。”然后我再根据这个信息去判断。


所以说这边你要把信息交给我,而不是自己在心里默念。因此所有人员提供的信息内容必须通过返回语句交给我。


接下来可以提供一个非可选但非必需的方法,用于获取对象的详细信息。现在暂时将这个方法的名称定义为 GetInfo 。完成这个定义后来看一个简单的 Java 示例,您来检查一下。请允许我定义一个简单的 Java 类。“那么现在来写这个代码。先写一个简单的Class Dept ,请注意类名应该能够清晰地描述出它所代表的事物。


比如一看到这个类名就知道它是关于 Dept 的某个事物,但是曾经有个学生给我写过一个特别让人费解的类名,他居然写了个叫‘高登’的类名。这里不采用这样的命名方式。”之后现在再次回到这里。现在要在这里为它定义几个属性。


按照之前所说的所有的属性需要使用私有封装,即 Private ,也就是 Long Deptno 接下来定义一个字符串类型的属性 String Dname ,以及另一个字符串类型的属性 String Loc 。还有之前提到过一个类中虽然可以提供无数个方法,但有一点必须要记住那就是必须提供无参

image.png

class Dept { // 类名称可以明确描述出某类事物
} 
public class JavaDemo {
public static void main(String args[]){
}
}

image.png

class Dept { // 类名称可以明确描述出某类事物 
private long deptno ; 
private string dname ; 
private string loc ;
}
public class JavaDemo {
public static void main(String args[]){
}
}

实际上现在已经留下了不少疑问。第一个问题是关键字 New 到底做了什么?第二个问题是 GC 是如何工作的?第三个问题是为什么需要 Setter  Getter 方法?第四个问题为什么要无参构造方法?不过无论是否存在无参构造方法都可以提供其他类型的构造方法。例如可以提供一个有参构造方法


现在再为 String Loc 添加一个属性,叫做 This.deptno 其等于Deptno 。接着设置其他属性: This.Dname 等于 dname This.loc 等于 Loc 。现在完成这些赋值操作后,按照接下来的步骤应该开始编写 Setter  Getter 方法了。这是面向对象编程中常见的封装实践,用于控制对对象属性的访问。请记住在刚开始学习编程的时候,强烈建议大家操作代码必须要熟练掌握。


也就是说要达到这样的程度:每写完一个程序,都能保证一次性全部正确。不要觉得“老师,这个代码我写得磕磕绊绊,但一次性全对的几率有 95% ”就满足了。有的人可能会说:“老师,我写完代码后一次性全对的几率可能只有 10% ”。这样同学们的能力此消彼长,慢慢就会发现如果不能做到完全独立,即脱离任何工具去写代码,那么对语法的掌握将不会透彻。


尤其是对于初学者而言,这个过程会非常棘手。接下来跟上 Dname 直接在 Return 后面跟上 Dname ,然后再找到一个名为 StringGetLoc 的函数。之后直接在这里找到Return 语句,并将这四点关于 Loc 的信息写完。信息填写完毕后,按照之前的讨论现在需要一个返回新信息的方法,可以将其命名为GetInfo ,那么是否可以直接在其后添加部门信息呢?当然可以。


首先要找到一个名为部门编号的字段,然后加上一个 This.Teptno ,接着加上部门名称,这次使用 Dname ,最后还要找到一个叫做部门位置的字段。在添加部门位置时跟上一个标识,假设它是 This.Roc 。这样就写完了。这个过程其实很简单,并且加入这些信息其实并不复杂简单来说在这段代码中如要进行操作。首先要创建一个新的 Deptno 对象,并将其赋值给变量 DEP


例如可以给这个新对象设置一个名称,比如“技术部”,并假设其位置是“北京网上”。接下来使用 Alt.print 来打印出 DEP 对象的GetInfo 方法返回的信息。当完成这些信息的设置后将使用 Java 编译器来编译代码,并随后运行编译后的 Java 程序。如果你们能够一次性正确完成这些步骤,那就说明你们已经达到了初学者应该具备的水平。


image.png

public void setDname (String dname){
this.dname=dname;
}
public void setLoc(String loc) {
this.loc =1oc;
}
public long getDeptro()(
return this.deptno;
}
public String getDname (){
return this,dname ;
}
publia String getLoc(){
return this.loc ;
}
}
public class JavaDemo {
public statie void main(String args[]){

而且这种简单的 Java 类实际上融合了现在所接触到的几乎所有重要概念。比如数据类型的划分、类的定义、 Private 关键字的封装作用、构造方法的实现以及方法的定义和对象的实例化等。


在整个过程中是不是基本上已经接触到了所有可能的关键要素?因此可以说简单的 Java 程序虽然易于理解,但它却涵盖了编程的基础,这一点非常重要。所以请务必重视这些基础知识,不要到了需要应用时却写不出来。

image.png

class Dept {  // 类名称可以明确描述出某类事物 
private long deptno ; 
private string dname; 
private String loc ;
public Dept() {}  // 必须提供有无参
public Dept(long deptno,string dname,String loc) {
this.deptno =deptno; 
this,dname =dname; 
this.loc=loc;
}
public String getInfo(){
return".[部门信息]部门编号:"+ this.deptno +"、部门名称:
}
public void setDeptno(long deptno){
this .deptno =deptno;
 }
public void setDname(String dname) {
this .dname =dname ;
相关文章
|
1月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
86 4
|
1月前
|
存储 人工智能 算法
从零掌握贪心算法Java版:LeetCode 10题实战解析(上)
在算法世界里,有一种思想如同生活中的"见好就收"——每次做出当前看来最优的选择,寄希望于通过局部最优达成全局最优。这种思想就是贪心算法,它以其简洁高效的特点,成为解决最优问题的利器。今天我们就来系统学习贪心算法的核心思想,并通过10道LeetCode经典题目实战演练,带你掌握这种"步步为营"的解题思维。
|
1月前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
152 5
|
1月前
|
安全 Java 开发者
告别NullPointerException:Java Optional实战指南
告别NullPointerException:Java Optional实战指南
242 119
|
1月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
141 1
|
1月前
|
Java Go 开发工具
【Java】(8)正则表达式的使用与常用类分享
正则表达式定义了字符串的模式。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
202 1
|
1月前
|
存储 Java 程序员
【Java】(6)全方面带你了解Java里的日期与时间内容,介绍 Calendar、GregorianCalendar、Date类
java.util 包提供了 Date 类来封装当前的日期和时间。Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
143 1
|
1月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
158 1
|
2月前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
Java 数据库 Spring
135 0
下一篇
oss云网关配置