Java_Chapter6_类与对象
2024-08-27 11:21:07
6.1 类与对象的概念
6.2 定义类
class Cylinder { double radius; int height; double pi; void setCylinder(double r, int h, double pi) { radius = r; height = h; this.pi = pi; } double getArea() { System.out.println("mian ji =" + pi * radius * radius); return pi * radius * radius; } double volume() { return getArea() * height; } }
定义圆柱体类
类的修饰符:public, abstract, final, 缺省 。另外,成员变量和成员方法各有自己的修饰符。
成员变量与局部变量的区别:①二者含义 ②可被什么修饰 ③存储方式 ④生存周期 ⑤没被赋初值
6.3 对象的创建与使用
将类理解成新的数据类型,将对象理解成新的变量。
Cylinder volu = new Cylinder(); //volu是对象的名字,即引用变量,存在于栈内存,它指向对象;new Cylinder()是对象实体,存在于堆内存。
package passParameter; public class Example6_4_1 { public static void main(String[] args) { // TODO Auto-generated method stub Cylinder YuanZhu = new Cylinder(); YuanZhu.setCylinder(8, 10, 3); System.out.println("体积=" + YuanZhu.volume()); } } class Cylinder { double radius; int height; double pi; void setCylinder(double r, int h, double pi) { radius = r; height = h; this.pi = pi; } double getArea() { System.out.println("mian ji =" + pi * radius * radius); return pi * radius * radius; } double volume() { return getArea() * height; } }
圆柱体类,赋值使用对象
6.4 参数的传递
当参数是基本数据类型时,是传值方式调用;当参数是引用型变量时,是传址方式(其实传递的是引用变量的值,只不过该值是对象/数组的首地址)。
举例:传递值或返回类型为数组
package passParameter; //矩阵转置 public class Example6_6 { public static void main(String[] args) { // TODO Auto-generated method stub int[][] juzhen = { { 1, 2, 3 }, { 4, 5, 6 } }; Trans my = new Trans(); int[][] transhou = my.transw(juzhen); for (int k = 0; k < transhou.length; k++) { for (int j = 0; j < transhou[k].length; j++) { System.out.print(transhou[k][j] + " "); } System.out.println(); } } } class Trans { int[][] transw(int[][] array) { int i, j; int[][] b = new int[array[0].length][array.length]; for (i = 0; i < array.length; i++) { for (j = 0; j < array[i].length; j++) { b[j][i] = array[i][j]; } } return b; } }
矩阵转置
6.5 匿名对象
用new创建一个对象后,不定义其引用变量,而直接调用这个对象的方法。
例:new Cylinder().setCylinder(6, 5, 3.14);
2015-10-03
最新文章
- python 反射器
- 汇编中bss,data,text,rodata,heap,stack,意义
- (六)6.5 Neurons Networks Implements of Sparse Autoencoder
- How to Avoid Producing Legacy Code at the Speed of Typing
- oracle 配置监听
- Uva 11694 Gokigen Naname
- android键盘锁定问题
- ABP日志管理
- Erlang标准数据结构的选择
- 排序系列 之 快速排序算法 —— Java实现
- google搜索引擎爬虫爬网站原理
- 解决安装fiddler后IE打开网页提示“代理服务器无响应”
- 20175329 2018-2019-3《Java程序设计》第五周学习总结
- 学习基础和C语言基础调查
- linux笔记_day05
- 集成xxl-job分布式任务调度平台
- springJdbc in 查询,Spring namedParameterJdbcTemplate in查询
- jQuery的attr()与prop()的区别
- C#中Array类
- 【Mac】解决「无法将 chromedriver 移动到 /usr/bin 目录下」问题
热门文章
- 在WPF的DataGrid中对行添加单击事件
- 【转载】如何升级linux上的gcc到最新版本
- 一起talk C栗子吧(第一百二十七回:C语言实例--查看main函数的參数)
- 一次显式GC导致的High CPU问题处理过程(转)
- memcache的内存管理机制
- C#中引用类型和值类型分别有哪些
- win10下Import caffe时出现“ImportError: No module named google.protobuf.internal”的解决办法
- SVN上新增一个项目和用户
- @Override must override a superclass method 有关问题解决
- DTD的学习和理解