JAVA程序设计----面向对象(上)
首先还是老样子,先来一点思考题。
1.什么是面向对象?
面向对象是用对象来模拟现实实际的事物,用对象之间的关系描述事物之间的联系。
2.构造方法与普通成员方法的区别?
格式区别:
构造方法和类名相同,并且没有返回类型,也没有返回值。
普通成员方法可以任意起名,必须有返回类型,可以没有返回值。
作用区别:
构造方法用于创建对象,并进行初始化值。
普通成员方法是用于完成特定功能的。
调用区别:
构造方法是在创建对象时被调用的,一个对象建立,只调用一次相应构造函数
普通成员方法是由创建好的对象调用,可以调用多次
3.什么是垃圾回收机制?
Java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间,回收之前会自动调用finalize()方法,用于清理资源。
4.类与对象之间的关系?
类是对象的模板,对象是类的实例,类只能通过对象才能使用
自我的一点小结:
1.面向对象的特点主要概括为封装性,继承性和多态性。
封装是面向对象编程的核心思想。将对象的属性和行为封装起来,其载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想。继承是两个类之间的一种关系,eg:一个百货公司类与销售员类相联系。多态性允许以统一的风格编写程序,以处理种类繁多的已存在的类及相关类。该统一风格可以由父类来实现,根据父类统一风格的处理,可以实例化子类的对象。
2.类和对象
类是对象的抽象,为对象定义了属性和行为,但类本身既不带任何数据,也不存在于内存空间中,而对象是类的一个具体存在,既拥有独立的内存空间,也存在独特的属性和行为。属性还可以随着自身行为而发生改变。
3.构造方法定义
构造方法实在创建一个对象使用new关键字时被调用的。构造方法有三个特征:
- 构造方法名与类名相同
- 构造方法没有返回值类型
- 构造方法中不能使用return返回一个值
4.this关键字
this表示当前对象,指向调用的对象本身。可以调用类中的属性,可以调用成员方法,也可以调用构造方法。
5.static关键字
static关键字表示静态的,用于修饰成员变量,成员方法以及代码块。
- 使用static修饰的成员变量,称为静态变量或类变量,它被类的所有对象共享,属于整个类所有,因此可以同过类名直接访问。而未用static修饰的成员变量,它属于具体对象独有只能通过引用变量访问。
- 使用static修饰的成员方法,称为静态方法,无需创建类的实例就可以调用静态方法,静态方法可以通过类名调用。
- 使用static修饰的代码块,它是最早执行的代码块。
上个代码:大致意思定义两个类Worker,Address。然后创建对象输出zhangsan,25,2500,北京市,1000084。具体就不写上去了,类似作业题随便一本教科书上都可以找到。
public class mainWorker {public static void main(String[] args) {Address addr = new Address("北京市","1000084");Worker worker1 = new Worker("zhangsan",25,2500,addr);
// Worker worker2 = new Worker("王火",25,5000);System.out.println(worker1.toString());
// worker1.work(12);
// worker2.work();}
}
public class Worker {private String name;private int age;private double salary;private Address addr;public Worker() {}public Worker(String name, int age, double salary, Address addr) {this.name = name;this.age = age;this.salary = salary;this.addr = addr;}@Overridepublic String toString() {return "Worker{" +"name='" + name + '\'' +", age=" + age +", salary=" + salary +", addr=" + addr +'}';}public void work(){//无参构造方法}public void work(int hours){//构造方法的重载System.out.println(name+"工作时间为:"+hours);}
}
public class Address {private String address;private String zipCode;//邮编public Address() {}@Overridepublic String toString() {return "Address{" +"address='" + address + '\'' +", zipCode='" + zipCode + '\'' +'}';}public Address(String address, String zipCode) {this.address = address;this.zipCode = zipCode;}}
JAVA程序设计----面向对象(上)相关推荐
- Java程序设计-书上重点总结
第一章 Java是一种解释型的程学设计语言,即Java源程序需要通过Java编译器先进行编译生成一种称为字节码的二进制文件,之后用Java解释器来解释执行这种字节码文件. 先通过编译器编译,生成字节码 ...
- 【阶段一】java之面向对象上
面向对象语言具有如下特征: 面向对象是一种常见的思想,比较符合人们的思考习惯: 面向对象可以将复杂的业务逻辑简单化,增强代码复用性: 面向对象具有抽象.封装.继承.多态等特效. 1.什么是面对对象 J ...
- 黑马程序员-Java基础:面向对象(上)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.面向对象概述 当需求单一,或者简单时,我们一步一步去操作没问题,并且效率也挺高.可随着需求的 ...
- 20145207《Java程序设计》实验二(Java面向对象程序设计)实验报告
<Java程序设计>实验二(Java面向对象程序设计)实验报告 目录 改变 Java面向对象程序设计实验要求 实验成果 课后思考 改变 看了下之前实验二的整体,很搞笑,大图+代码,没了.. ...
- Java笔记-面向对象(上)
面向对象(上) Java是面向对象的程序设计语言,Java语言提供了定义类.成员变量.方法等最基本的功能.类可被认为是一种自定义的数据类型,可以使用类来定义变量,所用使用类定义的变量都是引用变量,它们 ...
- JavaSE-Adventure(VII) Java OOP 面向对象程序设计
JavaSE-Adventure(VII) Java & OOP 面向对象程序设计 CONTENTS JavaSE-Adventure(VII) Java & OOP 面向对象程序设计 ...
- 2018-2019-2 20175227张雪莹《Java程序设计》 实验二《Java面向对象程序设计》
2018-2019-2 20175227张雪莹<Java程序设计> 实验二<Java面向对象程序设计> 实验报告封面 课程:Java程序设计 班级:1752班 姓名:张雪莹 学 ...
- 20145206《Java程序设计》实验二Java面向对象程序设计实验报告
20145206<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...
- 20155328 《Java程序设计》 实验二(Java面向对象程序设计) 实验报告
20155328 <Java程序设计> 实验二(Java面向对象程序设计) 实验报告 单元测试 一.单元测试和TDD 编程时需理清思路,将编程需求等想好,再开始编.此部分可用伪代码实现. ...
最新文章
- Python字典部分源码分析,字典是无序的
- 如何在FineUIMvc(ASP.NET MVC)视图中绑定多个模型?
- 了解你所不知道的SMON功能(十二):Shrink UNDO(rollback) SEGMENT
- HTML5中的websocket实现直播
- 前端学习(2556):vue插槽
- Connection timed out: connect; Communications link failure
- Kafka常见痛点及优化方案
- 2020.2idea怎么创建html项目_如何为IDEA项目创建GitHub存储库和本地Git存储库
- 数据结构(二)之二叉树
- vscode 配置python_VSCode配置Python版本
- Rational Rose打开mdl文件显示“there are warning,see the log for details”问题解决方法
- 《日本制造业白皮书(2018)》重磅发布!附400多页PPT
- python实现fastq文件GC含量的计算
- deepfacelab训练多久_DeepFaceLab进阶:H128,DF,SAE模型有何不同?哪个最好?
- 5大主流ASO优化工具
- 可显示上拼音下汉字的 text 格式
- 甲型流感H1N1流感症状预防和治疗
- python 移动平均线_Python中的SMA(短期移动平均线)
- java计算机毕业设计校友社交系统源代码+数据库+系统+lw文档
- 富文本编辑器Ueditor实战(二)-图片上传
热门文章
- HDU - 3694 Fermat Point in Quadrangle(三分套三分/凸包)
- HDU2650(高斯整数环)
- gdb调试fork多进程
- COM编程之二 接口
- “网页内容无法访问”可能是跨域错误!
- 操作系统 : 按优先数调度算法实现处理器调度(C++)
- C++ 类和对象(三):构造函数补充、匿名对象、友元、内部类、类的static与const
- MySql数据库中的子查询使用
- C++Template 模版的本质
- Kafka分区分配策略(4)——分配的实施