ZJU-java进阶笔记 第一、二周(类与对象,对象交互)
- 对象变量是对象的管理者,而非所有者
VendingMachine vm = new VendingMachine();
this指代当前对象
成员函数可以直接(不需要点运算符)调用本类的其他成员函数
void insertMoney(int amount) {balance = balance + amount;showBalance();
}
定义在成员函数内部的是本地变量,定义在类内部,成员函数外部的是成员变量
本地变量的作用域和生存期都是函数内部
成员变量的作用域是类的所有成员函数,生存期是对象的生存期本地变量一定要初始化(赋初值)
类里面的成员变量,java会保证给其一个初始值
成员变量的定义初始化:
可以①直接赋值、②调用函数和③已经定义的成员变量,以及④通过构造函数构造函数(在创建类的每一个对象的时候会被自动调用的函数),与类同名,
注意:
无返回值
可以不止一个(重载)
参数有无都可以一个类里面的成员变量可以是其他类的对象
private的意思是只有在类的内部才能够访问,即能够使用成员变量的地方只有两个
一是其他成员变量的定义初始化
二是成员函数内部
但这个限制是对类,而不是对对象
一个类的不同的对象可以互相访问别人(对象)的私有成员
例(注:这是Fraction类的成员函数)
Fraction multiply(Fraction r){return new Fraction(zi*r.zi,mu*r.mu);
}
说明:新new出来的Fraction可以使用r这个Fraction的成员变量zi mu
public static void main(String[] args){}
可以出现在同一包下的多个类中除非有非常充分的理由,否则成员变量应该私有,惟其如此,才能保护它们不被外界随意使用
如果访问属性没有,即不是public也不是private,则为friendly,意为位于同一个包的其他类可以访问
编译单元(unit)就是一个.java文件
一个编译单元里面不止一个类时,至多一个public类不推荐import display.* 防止和别的包相同类名类产生冲突
类是描述,对象是实体。在类里所描述的成员变量,是位于这个类的每一个对象中的。
而如果某个成员有static关键字做修饰,它就不再属于每一个对象,而是属于整个类的了。它们是类变量和类函数。
通过每个对象都可以访问到这些类变量和类函数,但是也可以通过类的名字来访问它们。类函数由于不属于任何对象,因此也没有办法建立与调用它们的对象的关系,就不能访问任何非static的成员变量和成员函数了。(static函数内部不能访问任何非static变量)
也就是,static变量是独一份的。同一类的所有对象共享的。
static变量只会在类进入程序时(类的装载)被初始化
ZJU-java进阶笔记 第一、二周(类与对象,对象交互)相关推荐
- Effective Java读书笔记(二)
Effective Java 读书笔记 (二) 创建和销毁对象 遇到多个构造器参数时要考虑使用构建器 创建和销毁对象 何时以及如何创建对象? 何时以及如何避免创建对象? 如何确保它们能够适时地销毁? ...
- java学习笔记(二十八)——开发一个小项目(VMeeting3.0)
上篇文章按照较规范的产品需求文档梳理了项目的逻辑,感觉开发起来明晰了很多:挂上一篇文章java学习笔记(二十七)--开发一个小项目(VMeeting2.0)_Biangbangbing的博客-CSDN ...
- Java变成笔记4:复用类
Java变成笔记4:复用类 图源:Java Switch语句(用法详解)-java教程-PHP中文网 类是OOP编程中的代码组织单元,无论是OOP的类还是面向过程的函数,其目的都是为了实现代码复用. ...
- 【Java学习笔记之二十六】深入理解Java匿名内部类
在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...
- 『RNN 监督序列标注』笔记-第一/二章 监督序列标注
『RNN 监督序列标注』笔记-第一/二章 监督序列标注 监督序列标注(Supervised Sequence Labeling)与传统的监督模式分类(supervised pattern classi ...
- 阿里内部发布最新版Java进阶笔记,金九银十看这份文档就够了
大家都说程序员这个职业薪资高.待遇好,现在是程序员"跳槽"的黄金时期,你准备好了吗?有没有给自己定个小目标?是30K.40K,还是更高?短期内提高Java 核心能力最快.最有效的方 ...
- Java虚拟机笔记(五):JVM中对象的分代
为什么要分代 为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用, ...
- JAVA中同目录下定义类,以及对象的创建与使用,内存图的原理
JAVA中同目录下定义类,以及对象的创建与使用(听课笔记) JAVA中对象的创建与使用(听课笔记) 示例一 同文件目录下,创建了三个类OOTest01,User,Address类,之间的调用 示例二 ...
- JAVA学习笔记---第一天(李兴华)
3.1.Java简介(了解) Java是一门编程语言,Java发展到今天,已经成为了一个真正意义上的语言标准,如果学习过(C.C++.Java)可以发现语法结构是很类似的,但是Java的标准指的是一种 ...
- 【Java学习笔记之二十五】初步认知Java内部类
可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人对内部类也只是略知一二). 第一次见面 内部类我们从外面看是非常容易理解的,无非就是在 ...
最新文章
- atcoder题目合集(持续更新中)
- 你知道“淘宝意念购“吗?阿里巴巴也入局脑机接口领域了...,
- 森林病虫防治系统 (十一)
- lua打开是二进制代码_物联网的构建:使用Lua高级语言进行嵌入式开发
- Linux基础维护——笔记
- python中的JSON(1)
- 全国重点城市建筑物矢量数据合集二(Shp格式+带高度)
- Origin技巧:两个柱状图竖向重叠怎么办?
- 1.初识Mysql数据库
- 数据库设计(5)-理解用户需求
- 郭琳加冕 2022第三季完美大师 全球人气季军
- [渝粤教育] 南阳医学高等专科学校 传染病护理 参考 资料
- 东营计算机考试,2018年东营市上半年计算机等级考试报名时间
- Qt例子学习笔记 - Examples/Qt-6.2.0/charts/callout
- 阿里云发送邮件(mail)失败
- 格雷码在异步FIFO中的应用
- 猫哥教你写爬虫 027--模块介绍
- 软件测试实用技术与常用模板
- [转] 玩智能手机必须知道的秘密
- react native开发Android 篇——集成自定义的字体