上一节单元测试的答案:
1. b 2. d 3. e 4. a 5. e 6. c 7. b 8. f 9. b

了解java对象的结构
更多精彩请阅读 东陆之滇的csdn博客:http://blog.csdn.net/zixiao217

本节学习目标

  • 认识Java语言中的关键字和保留字
  • 理解一个Java类和一个Java对象的关系
  • 了解一个Java类中所有组成的语法和功能

本节主要讲述两个主题内容:java语言如何处理对象;java的关键字和java类的组成

java中的关键字

和其他语言一样,java语言也指定了某些单词在编译的时候会专门处理。因此,你不能使用它们作为你程序中的变量命名。相对而言,java的关键字是比较少的:

abstract
assert
boolean
break
byte
case
catch
char
class
const
continue
default
do
double
else
enum
extends
final
finally
float
for
goto
if
implements
import
instanceof
int
interface
long
native
new
package
private
protected
public
return
short
static
strictfp
super
switch
synchronized
this
throw
throws
transient
try
void
volatile
while

除了以上关键字之外,也不允许使用truefalsenull来命名java中的某个变量。
在IDE(集成开发环境)中编写代码的好处是它对关键字使用了语法颜色表示,你将在后面的内容看到。

一个java类的结构

一个类是包含属性和行为的离散实体(对象)。定义了对象的基本结构,在运行时,应用程序(JVM)会创建对象的一个实例。一个对象有一个定义良好的边界和状态,正确的调用它去做一些事情。任何一门面向对象的语言都有自己的规则怎样去定义一个类。
java语言中,类的定义如下:

package 包的名称;
import 引入的类名称(包名.子包名.类名);
访问控制修饰符(public、private等) class 类名{访问控制修饰符(public、private等) 数据类型 变量名[= 初始值];//构造器访问控制修饰符(public、private等) 类名([参数列表]) {构造器里的代码}访问控制修饰符(public、private等) 返回类型 方法名([参数列表]) {方法中的代码}// 单行注释/* 多行注释 */
}//示例
package org.byron4j.javaBasic;
/**
* 这是一个"人"类
*/
public class Person{private String name;private int age = 0;//构造器public Person{System.out.println("初始化一个对象。");}/** 这是一个向某个人问好的方法*/public void sayHello(String name){System.out.println("Hello, " + name);}
}

包装类

java语言中,你可以命名你创建的类,但是有时候你可能汇创建一样名字的类,这会引发明明冲突,所以也就应运而生了。

一个java包是一个提供命名空间机制 —— 包下的类的名字应该是唯一的,包外面的可以不管。要确定一个唯一的结构,你必须指明它的名称,包括它的命名空间。如上述的Person,全名为org.byron4j.javaBasic.Person。

包也提供了一个很好的方式来建立更复杂的应用程序与离散单元的功能。

包的关键字是package,包的定义:

package  orgType.orgName.appName.compName;

包定义规范的说明:

  • orgType 机构类型,例如 com, org, or net
  • orgName 机构名称,例如 makotojava, oracle, or ibm.
  • appName 应用的名称,例如俄罗斯方块Tetris
  • compName 组件名,通常是当前模块名称

import语句

import告诉java编译器到那里找到这个类引用的外部类。

import ClassNameToImport;

引入某个包下所有的类可以使用*匹配:

import com.makotojava.*;

类的定义

在java语言中,定义一个对象,你必须定义一个类。可以认为类是对象的模板。

package org.byron4j.javaBasic;
/**
* 这是一个"人"类
*/
public class Person{private String name;private int age = 0;//构造器public Person{System.out.println("初始化一个对象。");}/** 这是一个向某个人问好的方法*/public void sayHello(String name){System.out.println("Hello, " + name);}
}

你可以使用任何你喜欢的名字作为类名,但是建议使用驼峰命名法:开始以一个大写字母,把每个单词的第一个字母大写的,所有其他字母小写,类似 WhitePerson。类名应该只包含英文字符和数字。坚持这些准则确保您的代码更容易使那些遵循相同约定的其他开发人员能看懂。

变量和方法

类有两种类型的成员 —— 变量和方法

变量

一个类的变量区分该类的每一个实例,并定义它的状态,这些变量被称为成员变量(实例变量),一个变量包含组成部分:

  • 访问控制修饰符
  • 数据类型
  • 变量名
  • 初始值可选

访问控制修饰符可能是:

  • public: 任何对象都可以访问这个变量。
  • protected: 同一个包下的对象、或者任意包下的该类的子类据可访问该变量。
  • 不指定: 同一个包下的类才能访问
  • private: 只有该类自己可以访问

数据类型可以使原始数据类型(int、long等)或者引用类型(后面会讲解到)。
变量名首字母小写,之后每一个单词首字母大写。
初始值,不指定的话系统给定默认的(如int类型给0,引用类型默认为null)。

Person类的定义

package com.makotojava.intro;public class Person {private String name;private int age;private int height;private int weight;private String eyeColor;private String gender;
}

方法

类的方法定义了对象的行为。
方法分成两种类型:构造器、其他方法。仅使用构造函数方法来创建一个类的实例。其他类型的方法可以用于几乎任何应用程序行为。方法的组成部分:

  • 访问控制修饰符
  • 返回类型
  • 方法名称
  • 参数列表

构造器(构造方法)

构造方法的名称必须是和类名一样。
带构造器的类的声明(不显式声明的话,默认含有一个空构造器——没有参数的构造器):

package com.makotojava.intro;
public class Person {private String name;private int age;private int height;private int  weight;private String eyeColor;private String gender;public Person() {// Nothing to do...}public Person(String name, int age, int height, int weight String eyeColor, String gender) {this.name = name;this.age = age;//参数age的值赋值给当前对象的age属性this.height = height;this.weight = weight;this.eyeColor = eyeColor;this.gender = gender;}
}

注意this关键字在上面例子中的使用。this指的是”this object”当前对象。我们看到age既是对象的属性名也是方法的参数名,则对象的属性必须用this指定。

Person对象变得越来越有趣,它可能需要更多行为。因此,你需要更多方法。

其他方法(非构造器)

构造函数是一种特殊的函数的。同样,许多其他类型的方法执行java程序中的特定功能。本节开始讲述关于方法的概念,这也将贯穿整个教程。

从上面的例子中,可以看到方法的定义形式:

accessSpecifier returnType methodName ([argumentList]) {methodStatement(s)
}

与构造器类似,但是这些方法和够在其的区别:一是可以任意命名(当然,最好遵循命名规范)。推荐以下几个规范:

  • 首字母小写
  • 避免出现数字数字,除非他们是绝对必要的。可以使用4代替for,例如loan4Student可以理解为loanForStudent
  • 仅适用字母字符
    二是有返回类型。

添加定义Person的其他方法

这里不展示构造器了,以使代码简介:

package com.makotojava.intro;public class Person {private String name;private int age;private int height;private int  weight;private String eyeColor;private String gender;public String getName() { return name; }public void setName(String value) { name = value; }// Other getter/setter combinations...
}

看到Getter、Setter方法了吗,在java中你以后会经常使用到它们的。现在,你需要知道的事,getter方法是获得指定属性的值,而setter是设置对应属性的值。

如果方法没有返回值,你应该在方法签名中指定方法的返回类型为void

静态和实例方法

通常,两种类型的方法会经常用到(非构造器方法):实例方法和静态方法。实例方法取决于它们的行为的特定对象实例的状态。静态方法也叫类方法,因为他们不依赖某个实例对象的状态。静态方法的行为发生在类的层级上。

静态方法主要用于公用。你可以把它们看作是全局的方法。

举个例子,接下来的教程中,你将会使用JDK中的Logger类在控制台输出信息。创建一个Logger的类实例,你不需要初始化Logger类,而是调用它的静态方法getLogger()。

调用静态方法和调用对象的方法是不同的:你应该使用类名.方法名(参数列表)调用:

Logger l = Logger.getLogger("NewLogger");

在这个例子中,Logger是类名,getLogger(…)是方法。正是这样,静态方法的调用只需要使用类名,而不需要去创建一个对象实例。

测试你学到的知识

1. import语句用来干什么的?a.没什么明确目的,只是提醒其他程序,在你的类里的引用。b.使用在web软件中,连接网络并下载代码c.告诉编译器你的类引用了哪些类d.都不是2.如果你想某个变量只对当前这个类才可见,应该使用哪个访问控制修饰符?a.publicb.privatec.都不是,因为这是编译器的默认访问控制行为d.protected3.java语言中的关键字是什么?a.某些单词作为java运行时的特定使用, 所以编译器在编译你的代码之前将它们提示出来b.你不能使用他们作为你在应用程序的变量或方法的命名, 它们在java语言中有特殊的含义c.java语言中没有关键字一说d.编译的时候会忽略,跟注释一样4.包作为命名空间保证里面的类名是唯一的,包外面的可以不管a.这要视编译上下文而定b.不是c.java语言中没有包这一说法d.是e.上面的都不是5.编程题:给Person类添加其他的getter、setter方法6.在前面的示例中,定义了有参数的构造器和无参数的构造器,为什么要定义无参的构造器呢,因为它里面什么都没有做。a.如果不定义一个无参构造器,会发生编译错误b.提供一个无参构造器可以为你使用它创建一个属性值为默认值的对象实例c.前面的示例代码有错,因为一个类中不可能有两个构造器d.根本没有构造器一说e.上面的都不是
7.静态方法和实例方法有什么不同?a.其实没什么不同b.静态方法可以在任何语言中调用,而实例方法只能是一个实例对象使用c.调用实例方法需要引用实例对象, 但是调用静态方法则不需要d.一个静态方法"黏死"了定义它的对象, 但是实例方法可以在各个对象之间调用

答案见下一节。

JAVA编程基础(四)开启Java语言编程之旅相关推荐

  1. java编程基础码_1.java编程基础

    1.Java的运行机制,计算机高级编程语言类型有:编译型.解释型,Java语言是这两种类型的结 合,利用编辑器编写Java源程序--源文件名:主类名.java,利用编译器(javac)将源程序编译 成 ...

  2. Java编程基础二:java基本语法

    第二章 基本语法 1.关键字和保留字 1.1关键字 定义:被java语言f赋予了特殊含义,用作专门用途的字符串 特点:关键字中所有的字母都是小写 用于定义 数据类型 的关键字 class interf ...

  3. 父与子的编程python_父与子的编程之旅:与小卡特一起学Python

    领取成功 您已领取成功! 您可以进入Android/iOS/Kindle平台的多看阅读客户端,刷新个人中心的已购列表,即可下载图书,享受精品阅读时光啦! - | 回复不要太快哦~ 回复内容不能为空哦 ...

  4. 进击 !!第二章 JAVA编程基础

    第二章 JAVA编程基础 目标: 掌握java的基本语法,常量,变量,流程控制语句,方法以及数组 运用java运算符的使用 了解java代码的基本格式 2.1java 的基本语法 1. 代码的基本格式 ...

  5. 《Java程序员面试秘笈》—— 第1章 Java编程基础

    本节书摘来异步社区<Java程序员面试秘笈>一书中的第1章,作者:常建功,更多章节内容可以访问云栖社区"异步社区"公众号查看. 第1章 Java编程基础 通过考察Jav ...

  6. java编程基础_Java编程语言基础知识要点

    Java编程语言基础知识要点 Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程.下面小编整理了Java编程语言基础知识要点,希望对大家有帮 ...

  7. 第二章java编程基础测试题_Java编程基础测试题分享

    单选题:(每道题目2分) 1. 下列哪个声明是错误的?(B) A. int i=10; B. float f=1.1; //float f=1.1f C. double d=34.4; D. byte ...

  8. 实验一 Java编程基础

    面向对象--Java实验报告 实验一:Java基础编程 实验一 Java编程基础 <center> <strong>姓名:</strong> <u>XX ...

  9. java中的常用名词,Java编程基础常见英语词汇

    Java编程基础常见英语词汇 Java编程基础中常见英语的词汇有哪些呢?这些都是学Java编程需要运用到的,下面内容由小编为大家介绍Java编程基础常见英语词汇,供大家参考! Java编程基础常见英语 ...

最新文章

  1. Java006-面向对象(继承)
  2. 处理接口超时_架构设计|异步请求如何同步处理?
  3. NET Core 3.0 项目中使用 AutoFac
  4. C++ const使用情况总结
  5. 模型增强 | 利用 NLG 增强 QA 任务性能
  6. 大场面试必问:秒杀90%Java面试者,后悔没有早点知道!
  7. enq: tt - contention_时空中的绘旅人tt游戏下载-时空中的绘旅人tt客户端下载v1.0.16 安卓版...
  8. LDA︱基于LDA的Topic Model变形+一些NLP开源项目
  9. 对话框的数据交换--MFC深入浅出
  10. 前端中LED字体的实现
  11. [C语言] [游戏] 扫雷
  12. 计算机网络中的NET与应用中的.NET
  13. 201771010112罗松《面向对象程序设计(java)》第一周学习总结
  14. WIN10插上耳机拔掉后再插没声音的问题【已解决】
  15. 原理图库:元器件引脚命名如何输出上划线
  16. 垃圾回收只知道标记清除?一文帮你打通V8垃圾回收
  17. 百分之百还原《京东商城》项目实战1
  18. 旋转编码器详解(主要讨论增量式编码器与绝对式编码器)
  19. 八大排序之归并排序(建议与快排一起看)
  20. 实用工具:CMD这么有用 附源码

热门文章

  1. fdct算法 java_ImageSharp源码详解之JPEG压缩原理(3)DCT变换
  2. python plot坐标轴显示比例一致_绘图,x轴和y轴的比例相同
  3. 菲尔普斯:200自决赛会很艰苦 满意预赛成绩
  4. CSP-J2019普及组复赛T4:加工零件
  5. 安卓系统管理软件_2020年了,这些高效率软件你必须得会!
  6. PBS任务只排队,不运行
  7. 软件磁盘阵列(Software RAID)介绍
  8. php图片翻转,php识别翻转iphone拍摄的颠倒图片
  9. 用PIL制作黑白滤镜
  10. 新版RTSP协议网络摄像头网页无插件直播平台EasyNVR如何自定义通道的背景音乐?