java之类的抽取与对象的创建
Java语言之类的抽取
前言:世界由什么组成?This is a question.有人说是原子、分子,有人说是山川草木。
诚然,一千个人眼中有一千个哈姆雷特。而在程序员眼中,万物皆对象。
定义:
在一组相同或者相似的对象抽取出具有相同特征或者共性的特征、行为,并保留所关注的部分。
类的组成
一个类由三部分组成,如下表 1所示
|
类名 |
|
属性(特征) |
|
方法(函数,也是行为) |
表 1
对于属性
- 通过变量表示,又称实例变量、成员变量
- 语法,数据类型 变量名
- 位置,类的内部,方法的外部
- 通过函数表示,又称实例函数
- 语法 public 返回值类型 变量名(形参){//方法主体}
对于方法
示例
public class DOG {
String breed;
String furcolor;
String sex;
int age;
//是成员变量
public DOG() {
System.out.println("方法初始化了");
}
/*一个默认的构造方法*/
public DOG(String b, String f, String s, int a) {
breed = b;
furcolor = f;
sex = s;
age = a;
System.out.println(this.breed + "修狗狗是" + furcolor + "色的" + sex + age + "岁");
}
//一个有变量的构造方法
public void eat(){
System.out.println("狗狗在睡觉呢");
}
//一个函数
}
测试文件:
public class testDOG {
public static void main(String[] args) {
DOG DSG = new DOG("贵宾犬", "白色", "女", 2);
DSG.eat();
}
}
ps:由于word文档编辑限制可能存在大量问题,欢迎指正。



对象的创建
语法:
类名 对象名=new 类名();
在输入这一段文字之后,计算机做了这样的三件事
- 在内存中开辟了相关的空间,并非赋属性为默认值
- 调用构造方法初始化
- 把对象地址重新赋值给对象名
1.

2.

3.

java之类的抽取与对象的创建的更多相关文章
- java类的初始化和对象的创建顺序
学习java编程思想--类的初始化p146 类的加载顺序* 1加载器启动找到 xxx.class文件,通过extends关键字寻找基类,先加载基类* 2类初始化先初始化static成员变量和stati ...
- Java虚拟机(二)对象的创建与OOP-Klass模型
前言 在前一篇文章中我们学习了Java虚拟机的结构原理与运行时数据区域,那么我们大概知道了Java虚拟机的内存的概况,那么内存中的数据是如何创建和访问的呢?这篇文章会给你答案. 1.对象的创建 对象的 ...
- Java开发学习教程之对象的创建与使用
java面向对象中的对象创建与使用.类是对象的抽象,为对象定义了属性和行为,但类本身既不带任何数据,也不存在于内存空间中.而对象是类的一个具体存在,既拥有独立的内存空间,也存在独特的属性和行为,属性还 ...
- 深入java虚拟机(二) 对象的创建
java创建对象通常的方式是使用new指令,虚拟机会首先检查new指令的参数(也就是new关键字后面跟着的类名)是否能够在常量池中找到一个类的符号引用,并根据这个符号引用检查其代表的类是否已经加载.解 ...
- Java面向对象03——类与对象的创建
类的创建与初始化对象 age: 以类的方式组织代码,以对象的组织(封装)数据 package oop.demon01.demon02; // 学生类(抽象模板) public class Stu ...
- Java内存区域与内存溢出异常---对象的创建
对象的创建 在语言层面,创建一个对象通常仅仅是一个new关键字而已.在虚拟机层面,虚拟机遇到一个new指令时,首先回去检查这个指令的参数是能在常量池中定位到一个类的符号引用,并检查这个符号引用代表 ...
- 图解JAVA对象的创建过程
前面几篇博文分别介绍了JAVA的Class文件格式.JVM的类加载机制和JVM的内存模型,这里就索性把java对象的创建过程一并说完,这样java对象的整个创建过程就基本上说明白了(当然你要有基础才能 ...
- java 对象 :创建
灵感来自effective java 关于对象,是java的核心,如何有效的创建其实是一个值得关注的地方. 1.静态工厂:这是一个值得关注的,并且应该时刻考虑的方法. 优点:1.他是有名字的,这个是如 ...
- java --- 对象的创建过程
java 对象创建的过程 存在了继承关系之后,对象创建过程如下: 1.分配空间.要注意的是,分配空间不光是分配子类的空间,子类对象中包含的父类对象所需要的空间,一样在这一步统一分配.在分配的空间的时候 ...
随机推荐
- epoll linux和协程gevent的区别
epoll linux 底层是libevent.so模块实现的 gevent也是IO多路复用,底层是libevent.so模块实现的是更上层的封装 Twsited异步网络框架.代码量非常大.在开源p ...
- response.setHeader("xxx","大侠")如果赋值中文,那么将不会在页面出值,
response.setHeader("xxx","大侠")如果赋值中文,那么将不会在页面出值,而非中文就可以在页面出值
- SpringBoot 整合es(elasticsearch)使用elasticsearch-rest-high-level-client实现增删改
引入依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok< ...
- 【蓝桥杯】第十二届蓝桥杯砝码称重(Python题解)
@ 目录 题目 [80分] 思路 知识点 代码 题目 [80分] 你有一架天平和N个砝码,这N个砝码重量依次是W1,W2,--,WN请你计算一共可以称出多少种不同的重量? 注意砝码可以放在天平两边. ...
- 【LeetCode】895. Maximum Frequency Stack 解题报告(Python)
[LeetCode]895. Maximum Frequency Stack 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxueming ...
- 1105 第K大的数
1105 第K大的数 基准时间限制:1 秒 空间限制:131072 KB 数组A和数组B,里面都有n个整数.数组C共有n^2个整数,分别是A[0] * B[0],A[0] * B[1] ...... ...
- 汇编MMX实现图片淡入淡出核心代码
计算机组成课程个人作业 参考: https://blog.csdn.net/yangjianqiao0/article/details/69388595 https://blog.csdn.net/d ...
- FreeSql.Provider.SqliteCore如何加密
FreeSql.Provider.SqliteCore 是FreeSql基于微软提供的最新的Microsoft.Data.Sqlite.Core驱动的实现. 支持的版本 .NETStandard2.0 ...
- Uncovering the Limits of Adversarial Training against Norm-Bounded Adversarial Examples
Uncovering the Limits of Adversarial Training against Norm-Bounded Adversarial Examples 目录 概 主要内容 实验 ...
- matplotlib 进阶之Legend guide
目录 matplotlib.pyplot.legend 方法1自动检测 方法2为现有的Artist添加 方3显示添加图例 控制图例的输入 为一类Artist设置图例 Legend 的位置 loc, b ...