用JavaScript设计和创建对象
通过在优锐课的java学习分享中,get很多学习新技能,分享给大家参考学习。
介绍
在阅读此分步指南之前,你可能需要关注面向对象编程的介绍。 以下步骤中包含的Java代码与该文章理论中使用的Book对象的示例相匹配。
到本指南结束时,你将学习如何:
- ·设计对象
- ·将数据存储在对象中
- ·处理对象中的数据
- ·创建对象的新实例
类文件
如果你不熟悉对象,则很可能会习惯于仅使用一个文件(Java主类文件)来创建Java程序。 该类具有为Java程序的起点定义的main方法。
下一步中的类定义需要保存在单独的文件中。 它遵循与主类文件相同的命名准则(即,文件名必须与文件名扩展名为.java的类名匹配)。 例如,当我们制作Book类时,以下类声明应保存在名为“ Book.java”的文件中。
02
of 07
阶级宣言
通过创建类来指定对象保存的数据以及如何处理该数据。 例如,以下是Book对象的类的非常基本的定义:
public class Book {
}
值得花点时间来分解上面的类声明。 第一行包含两个Java关键字“ public”和“ class”:
- ·public关键字称为访问修饰符。 它控制Java程序的哪些部分可以访问你的类。 实际上,对于顶级类(即未包含在另一个类中的类),例如我们的书本对象,它们必须是公共可访问的。
- ·class关键字用于声明大括号内的所有内容都是我们类定义的一部分。 它也直接跟在类的名称之后。
03
of 07
领域
字段用于存储对象的数据,并结合起来构成对象的状态。 当我们制作Book对象时,保存有关书名,作者和出版商的数据将是有意义的:
public class Book { //fields
private String title;
private String author;
private String publisher;
}
字段只是具有一个重要限制的普通变量-它们必须使用访问修饰符“ private”。 private关键字意味着只能从定义它们的类内部访问这些变量。
注意:Java编译器没有强制执行此限制。 你可以在类定义中创建一个公共变量,而Java语言不会抱怨它。 但是,你将打破面向对象编程的基本原理之一-数据封装。 你只能通过对象的行为来访问它们的状态。 或者用实际的话来说,只能通过类方法访问你的类字段。 由你决定对创建的对象实施数据封装
04
of 07
构造方法
大多数类都有构造函数方法。 这是在首次创建对象时调用的方法,可用于设置其初始状态:
public class Book { //fields
private String title;
private String author;
private String publisher; //constructor method
public Book(String bookTitle, String authorName, String publisherName)
{
//populate the fields
title = bookTitle;
author = authorName;
publisher = publisherName;
}
}
构造函数方法使用与类(即Book)相同的名称,并且需要公开访问。 它获取传递给它的变量的值并设置类字段的值。 从而将对象设置为其初始状态。
05
of 07
新增方法
行为是对象可以执行的动作,并被编写为方法。 目前,我们有一个可以初始化但没有做太多其他事情的类。 让我们添加一个名为“ displayBookData”的方法,该方法将显示对象中保存的当前数据:
public class Book { //fields
private String title;
private String author;
private String publisher; //constructor method
public Book(String bookTitle, String authorName, String publisherName)
{
//populate the fields
title = bookTitle;
author = authorName;
publisher = publisherName;
} public void displayBookData()
{
System.out.println("Title: " + title);
System.out.println("Author: " + author);
System.out.println("Publisher: " + publisher);
}
}
displayBookData方法所做的全部工作是将每个类字段打印到屏幕上。
我们可以根据需要添加任意数量的方法和字段,但现在让我们考虑Book类是否完整。 它具有三个字段来保存有关书籍的数据,可以对其进行初始化并显示其中包含的数据。
of 07
创建对象的实例
要创建Book对象的实例,我们需要一个地方来创建它。 制作一个新的Java主类,如下所示(将其保存为BookTracker.java与Book.java文件位于同一目录中):
public class BookTracker { public static void main(String[] args) { }
}
要创建Book对象的实例,我们使用“ new”关键字,如下所示:
public class BookTracker { public static void main(String[] args) { Book firstBook = new Book("Horton Hears A Who!","Dr. Seuss","Random House");
}
}
等号的左侧是对象声明。 就是说我想制作一个Book对象并将其称为“ firstBook”。 等号的右侧是Book对象的新实例的创建。 它要做的是转到Book类定义,然后在构造方法中运行代码。 因此,将创建书名对象的新实例,并将标题,作者和发行者字段分别设置为“霍顿听见某人!”,“苏斯博士”和“随机屋”。 最后,等号将我们的新firstBook对象设置为Book类的新实例。
现在,让我们在firstBook中显示数据,以证明我们确实创建了一个新的Book对象。 我们要做的就是调用对象的
public class BookTracker { public static void main(String[] args) { Book firstBook = new Book("Horton Hears A Who!","Dr. Seuss","Random House");
firstBook.displayBookData();
}
}
07
of 07
多个物件
现在我们可以开始看到物体的力量了。 我可以扩展程序:
public class BookTracker { public static void main(String[] args) { Book firstBook = new Book("Horton Hears A Who!","Dr. Seuss","Random House");
Book secondBook = new Book("The Cat In The Hat","Dr. Seuss","Random House");
Book anotherBook = new Book("The Maltese Falcon","Dashiell Hammett","Orion");
firstBook.displayBookData();
anotherBook.displayBookData();
secondBook.displayBookData();
}
}
通过编写一个类定义,我们现在可以根据需要创建尽可能多的Book对象!
> 喜欢这篇文章的可以点个赞,欢迎大家留言评论,记得关注我,每天持续更新技术干货、职场趣事、海量面试资料等等
> 如果你对java技术很感兴趣也可以交流学习,共同学习进步。
> 不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代
文章写道这里,欢迎完善交流。最后奉上近期整理出来的一套完整的java架构思维导图,分享给大家对照知识点参考学习。有更多JVM、Mysql、Tomcat、Spring Boot、Spring Cloud、Zookeeper、Kafka、RabbitMQ、RockerMQ、Redis、ELK、Git等Java干货
用JavaScript设计和创建对象的更多相关文章
- Javascript设计原则
Javascript设计原则 在面向对象的程序设计思想中, 我们能够遵循一些原则能够让我们开发代码时结构层次清晰, 更具说服力, 可谓是事半功倍. 做到这一点我们掌握一些程序设计原则是非常有利的, 如 ...
- 一步步学习javascript基础篇(4):面向对象设计之创建对象(工厂、原型和构造函数等模式)
前面我们介绍了可以通过Object构造函数或对象字面量都可以用来创建单个对象,但是如果需要创建多个对象的话,显然很多冗余代码. 接下来介绍几种模式来创建对象.不过在此之前,我们还是先来了解下 type ...
- 利用 V8 深入理解 JavaScript 设计
JavaScript 代码运行 以大家开发常用的 chrome 浏览器或 Node 举例,我们的 JavaScript 代码是通过 V8 运行的.但 V8 是怎么执行代码的呢?当我们输入 const ...
- JavaScript设计原则与编程技巧
1 设计原则概述 <UNIX/LINUX设计哲学>设计准则 ① 小既是美. ② 每个程序只做一件事情. ③ 快速建立原型. ④ 舍弃高效率而取可移植性. ⑤ 避免强制性的图形化界面交互. ...
- 关于JavaScript中的创建对象的学习总结
一.最简单的对象创建方法 在JavaScript中,直接使用Object构造函数或对象字面量都可以很轻易地创建单个对象,缺点是:创建具有同一个接口(标准的OO中的接口概念)的多个对象时,会有大量重复代 ...
- javascript继承(二)—创建对象的三种模式
一.工厂模式 function createPerson(name,age){ var o = {}; o.name = name; o.age = age; o.sayHi = function() ...
- javascript三种创建对象的方式
javascript是一种“基于prototype的面向对象语言“,与java有非常大的区别,无法通过类来创建对象.那么,既然是面象对象的,如何来创建对象呢? 一.通过”字面量“方式创建. 方法:将成 ...
- Javascript面向对象之创建对象
面向对象的语言具有一个共同的标志,那就是具有“类”的概念,但是在javascript中没有类的概念,在js中将对象定义为“无序属性的集合,其属性可以包含基本值,对象或者函数”,即其将对象看作是一组名值 ...
- JavaScript构造函数+原型创建对象,原型链+借用构造函数模式继承父类练习
虽然经常说是做前端开发的,但常常使用的技术反而是JQuery比较多一点.在JavaScript的使用上相对而言少些.尤其是在创建对象使用原型链继承上面,在项目开发中很少用到.所以今天做个demo练习一 ...
随机推荐
- 带大家用40行python代码实现一个疫情地图
最近两个月,因为新冠病毒无情的肆虐,相信会给每个中国人的记忆中画上重重的一笔.到今天为止,疫情形势依然十分严峻,虽然除湖北外的其他省份已经连续十一天确诊人数下降,但是接下来还有将近至少1.6亿的人口迁 ...
- Codeforces_734_E
http://codeforces.com/problemset/problem/734/E 每次操作可以把连通的同颜色的点全部换颜色,缩点,找直径,第一遍dfs找起点,第二遍dfs求直径. #inc ...
- HDU_1455_dfs
http://acm.hdu.edu.cn/showproblem.php?pid=1455 int dfs(int all,int sum,int now),all代表剩余总长,sum,代表每段长, ...
- python之字典遍历方法
字典遍历分为三种: 遍历key 遍历value 遍历key-value key遍历: >>> person={','city':'BeiJing'} >>> for ...
- 利用selenium模拟登陆
第一部:利用selenium登陆 导入selenium库 from selenium import webdriver 明确模拟浏览器在电脑中存放的位置,比如我存在当前目录 chromePath = ...
- mixin很难吗?
实践类工作经常会遇到这样的问题,有些概念会用不会说,最近在学习Dart,遇到mixin便是如此.读了几篇网文总觉得良莠不齐,一群码友也说越读越懵,索性静下心来重新出发,一点一滴地弄明白.记录下来分享给 ...
- TTStand 基础知识[8] Build-In StepTypes(3)
Build-In Step Types的最后一篇,前面两篇的连接如下: TestStand 基础知识[7] Build-In StepTypes(2) TestStand 基础知识[6] Build- ...
- Invoking Descriptors - Python 描述符的用法建议
描述符用法建议, 内置的 property 类创建的是'覆盖型'(date descriptor), 实现了 __set__ 和 __get__. 特性 property 的 __set__ 方法 默 ...
- 使用github--stanfordnlp--glove训练自己的数据词向量
1.准备语料 准备好自己的语料,保存为txt,每行一个句子或一段话,注意要分好词.将分好词的语料保存为×××.txt 2.准备源码 下载地址:https://github.com/stanfordnl ...
- aliyun---经过LB到后端k8s压测超时的问题
环境:阿里云 压测主机:阿里云ECS(非LB后的主机) 压测目标:阿里云k8s自己的某个服务 k8s配置在kube-system 按照之前的ingress-nginx 配置了一个内网的ingress- ...