Java 的类与对象

Java作为一门面向对象的语言,它支持很多的概念,例如:封装,多态,继承,类,对象等等。这篇文章里主要讲的是对象与类。

什么是类

类比较好理解,可以与”种类“,”类别“等概念联系起来理解。它一种描述那一类对象的行为或状态的模板,因此一个类可以有很多对象。对于类的描述,在《巴郎AP计算机A》中是这样说的:“A class is a software blueprint for implementing objects of given type.”大体意思是类是实现一种对象的一个软件蓝图。这里则可以将其作为分类或归类来理解。

什么是对象

对象是类的一个实例,它有特定的行为与状态。举个例子。一只狗是一个对象,他的行为有吃饭,睡觉,吠叫,它的状态有颜色,名字,品种。 在《巴郎AP计算机A》中对对象是这样描述的:”Every program that you write involves at least one thing that is being created or manipulated by the program. This thing, together with the operations that manipulate it, is called an object.” 这段话大体意思就是说,每个程序中都至少包含着一个程序被程序所创造或操纵的东西,这个东西本身与操纵它的操作并称为对象。在这里,我们可以将操纵他的方法理解为他的行为,这个东西本身则包含了它的状态(属性)。

类与变量

下面是一个类的实例:

public class Cat{String breed;String color; int age;void walking(){ }void sleeping(){ }
}

一个类中可以包含以下类型的变量

1. 局部变量 :在方法,构造方法或语句块中被定义的变量被称为局部变量。声明变量与初始化都在方法中。方法结束后变量自动销毁。

2. 成员变量 :成员变量是定义在类中,方法之外的变量。这种变量在创建对象时实例化。成员变量可以被类中方法,构造方法和特定语句块访问。

3. 类变量 :类变量也声明在类中,方法体之外,但是必须声明为static类型。

#一个类可以有多个方法,上图的walking(),sleeping() 都是Cat类的方法。

构造方法

每个类都含有构造方法,如果没有显性的定义构造方法,编译器会为该类提供一个默认的构造方法。在创建对象时至少需要调用一个构造方法,它的名字必须与类名一致。一个类可以有多个构造方法。下面是一个构造方法的示例。

public class Cat{public Cat(){}public Cat(String breed){}
}

# 在这个例程中,breed的是构造器的唯一参数。

创建对象

对象是根据类来创建的,创建对象所使用的关键词为“new”。创建对象的步骤为以下三步:

1. 声明 :声明对象的名称与类型。

2. 实例化 :使用关键字new创造对象。

3. 初始化 :在创建对象过后调用构造方法初始化对象。

下面是一个关于创建对象的例子:

public class Puppy{public Puppy(String name){//这个构造器仅有一个参数:nameSystem.out.println("小狗的名字是 : " + name ); }public static void main(String []args){// 下面的语句将创建一个Puppy对象Puppy myPuppy = new Puppy( "tommy" );}
}

该程序的输出结果为:

小狗的名字是 : tommy

实例化变量与方法的访问

我们可以通过已创建的对象来访问成员变量及成员方法,具体方法如下:

/* 实例化对象 */
Classname ObjectReference = new Constructor();
/* 访问类中的变量 */
ObjectReference.variableName;
/* 访问类中的方法 */
ObjectReference.MethodName();

实例

在本篇文章的最后,这个例子展示了如何创建对象,访问成员变量与方法。

public class Workers{int workerAge;public Workers(String name){// 这个构造器仅有一个参数:nameSystem.out.println("员工的名字是 : " + name ); }public void setAge( int age ){workerAge = age;}public int getAge( ){System.out.println("员工的年龄为 : " + workerAge ); return workerAge;}public static void main(String []args){/* 创建对象 */Workers workers = new Workers( "Jack" );/* 通过方法来设定age */workers.setAge( 20 );/* 调用另一个方法获取age */workers.getAge( );/*你也可以像下面这样访问成员变量 */System.out.println("变量值 : " + workers.workerAge ); }
}

通过编译并运行上面的程序,我们可以得到以下结果:

员工的名字是 : Jack
员工的年龄为 : 20
变量值 : 20

# 谢谢观看,侵删。

Java学习心得——对象与类相关推荐

  1. JAVA学习 Day4(对象和类、引用数组)

    对象和类.引用数组 回顾 1.面向对象 2.方法重载 3.构造方法/构造器: 4.this 5.命名规则: 回顾 数组: 3种初始化方式 长度length, 长度不可变 引用类型 -> 堆 访问 ...

  2. Java入门1.2.3—一个老鸟的Java学习心得

    Java入门1.2.3-一个老鸟的Java学习心得 基本信息 作者: 臧萌    出版社:清华大学出版社 ISBN:9787302217831 上架时间:2010-3-30 出版日期:2010 年3月 ...

  3. java入门123 pdf下载_Java入门123:一个老鸟的Java学习心得 pdf_IT教程网

    资源名称:Java入门123:一个老鸟的Java学习心得 pdf 第1篇 Java语言基本语法 第1章 让自己的第一个Java程序跑起来 第2章 搭建自己的集成开发环境 第3章 Java中的基本数据类 ...

  4. java入门123pdf二维码pdf_Java入门123:一个老鸟的Java学习心得 pdf

    资源名称:Java入门123:一个老鸟的Java学习心得 pdf 第1篇 Java语言基本语法 第1章 让自己的第一个Java程序跑起来 第2章 搭建自己的集成开发环境 第3章 Java中的基本数据类 ...

  5. Java入门123:一个老鸟的Java学习心得(二维码版)

    Java入门123:一个老鸟的Java学习心得(二维码版)清华大学出版社 Java入门123--一个老鸟的Java学习心得(二维码版)充分考虑了初学Java的种种困难,讲解细致入微,抽丝剥茧,层层推进 ...

  6. 计算机编程老鸟的心得,java入门123——一个老鸟java学习心得.docx

    java入门123--一个老鸟的java学习心得 学习Java心得体会 学习了一学期的Java课程,觉得是该总结自己的心得体会了.开始学习任何一门课(包括java),兴趣最重要.一直觉得自己在学计算机 ...

  7. java老鸟123怎么样_java入门123——一个老鸟的java学习心得.doc

    java入门123--一个老鸟的java学习心得 java入门123--一个老鸟的java学习心得 篇一:java初学者学习心得 学习Java心得体会 学习了一学期的Java课程,觉得是该总结自己的心 ...

  8. java工具类应该抛异常吗,java学习阶段一 工具类(异常)

    java学习阶段一 工具类(异常) 介绍 异常:运行期间出现的错误 背离程序本身意图的表现 基本知识 异常的分类 根类 Throwable Error 程序无法处理的错误 表示运行应用程序中教严重的问 ...

  9. java学习心得---方法

    java学习心得-方法 一.概念 方法是实现特定功能的一段代码,可以重复使用. 二.定义 一些列代码指令的合集(就是将一些代码整合再一起). 三.作用 提高代码的重复性. 四.定义的格式 访问修饰符+ ...

  10. Java中的对象和类

    一. OOP中的基本概念     Java的编程语言是面向对象的,采用这种语言进行编程称为面向对象编程(Object-Oriented Programming, OOP), 它允许设计者将面向对象设计 ...

最新文章

  1. R语言可视化图像中最常用的点样式(pch、plot characters)列表、ggpubr::show_point_shapes可视化最常用的点样式(pch)
  2. Java实现算法导论中有限自动机字符串匹配算法
  3. 阿里云服务器上安装java配置jdk
  4. Powershell命令中的 CommonParameters是指什么
  5. CUDA 开启GPU之间的P2P通信功能
  6. 2012服务器在IIS部署的SLL(https)网址谷歌浏览器无法访问的问题解决
  7. BRVAH官方使用指南(持续更新)
  8. jQuery视频展示效果实例
  9. 单点登录系统设计分析
  10. panic: reflect: reflect.Value.SetString using value obtained using unexported field
  11. android半透明闪退,移动端常见面试题一:移动端兼容解决方案
  12. 【常用芯片】ULN2003工作原理及中文资料(实例:STM32驱动28BYJ48步进电机)
  13. 小牛叔讲Python第10章:化繁为简的推导式
  14. APIAuto——敏捷开发最强大易用的 HTTP 接口工具 (二)
  15. ltsc系统升级为服务器,微软宣布Win11将像Win10一样每月提供更新 且有长期服务版本LTSC...
  16. c语言中public 用法,深入理解C++中public、protected及private用法
  17. python做一个【批量加密解密】软件,让你的文件有程序加密保护,在也不怕别人乱翻你的东西了
  18. sbt介绍与构建Scala项目
  19. 使用jquery ajax 实现用户的用户名注册验证,如果该用户已存在则提示该用户已存在
  20. Revit导入Cad图元丢失不正确解决和链接CAD功能

热门文章

  1. Vb如何设计编程计算机,vb程序设计论文
  2. 数值分析复习(七)——偏微分方程数值解法
  3. 8*8*8光立方制作
  4. SVN 使用beyondcompare 来版本对比
  5. CSS半透明边框效果
  6. python爬虫从网页下载文件_用 Python爬虫下载网页文件教程-ie缓存文件提取器
  7. java转码工具应用程序_java转码工具native2ascii.exe的使用方法
  8. 背包问题-递归思想(C语言)
  9. 原生JavaScript实现幻灯片效果
  10. Unity蛮牛教程噩梦射手----代码讲解(1)