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

Java_Chapter6_类与对象的更多相关文章

  1. Java编程里的类和对象

    像我们搞计算机这块的,都知道这么一件事,当前的计算机编程语言主要分为两大块,一为面向过程,二为面向对象.Java就是一门纯面向对象的语言.学习了一个月左右的Java,在下对于Java当中的类和对象有了 ...

  2. Python - 类与对象的方法

    类与对象的方法

  3. C++基础知识(5)---类和对象

    终于把C++中的基础在前面的几篇博客中总结完了,可能还有一些语法还没有总结到,没关系,以后用到了再查资料就好.类是C++中的一个非常重要的概念,这是区别你使用的C++到底是面向过程还是面向对象的一个重 ...

  4. 简述JavaScript对象、数组对象与类数组对象

    问题引出 在上图给出的文档中,用JavaScript获取那个a标签,要用什么办法呢?相信第一反应一定是使用document.getElementsByTagName('a')[0]来获取.同样的,在使 ...

  5. 前端学PHP之面向对象系列第一篇——类和对象

    × 目录 [1]类 [2]成员属性[3]成员方法[4]对象[5]成员访问[6]this 前面的话 面向对象程序设计(OOP)是一种计算机编程架构.计算机程序由单个能够起到子程序作用的单元或对象组成,为 ...

  6. Objective-C Runtime 运行时之一:类与对象

    Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理.这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一 ...

  7. [Java入门笔记] 面向对象编程基础(一):类和对象

    什么是面向对象编程? 我们先来看看几个概念: 面向过程程序设计 面向过程,是根据事情发展的步骤,按进行的顺序过程划分,面向过程其实是最为实际的一种思考方式,可以说面向过程是一种基础的方法,它考虑的是实 ...

  8. 解析Java类和对象的初始化过程

    类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来 ...

  9. 02OC的类和对象

    这章重点介绍OC的类以及对象,由于C语言是面向过程语言,而OC只是对于C语言多了一些面向对象的特性,所以OC相对于其他面向对象语言,例如C#.Java等没有那么多的语法特性,所以差别还是比较大的. 一 ...

随机推荐

  1. 安装ChemOffice 15.1就是这么简单

    化学绘图软件ChemDraw出了最新版ChemOffice 15.1了,其下有三个不同组件,其中ChemDraw15.1 Pro使用范围最广.当我们下载完软件后就需要对其进行安装,一般按照流程来就没有 ...

  2. 《ASP.NET 1200例》ref关键字与out关键字

    REF关键字 ref 关键字会导致通过引用传递的参数,而不是值. 通过引用传递的效果是在方法中对参数的任何改变都会反映在调用方的基础参数中. 引用参数的值与基础参数变量的值始终是一样的. 不要将“通过 ...

  3. box-sizing与calc()与flex

    1,Syntax: /* Keyword values */ box-sizing: content-box; box-sizing: border-box; /* Global values */ ...

  4. fis3 静态文件 发布 线上

    PMS上线及安装文档 目录 一:安装环境1 1.1安装Node和NPM 1 1.2安装FIS3 1 1.3安装fis3压缩包 1 二:上线更新2 1:发布网站 2 2:寻找fis3 文件 2 3:复制 ...

  5. 【BZOJ2179】FFT快速傅立叶

    [BZOJ2179]FFT快速傅立叶 Description 给出两个n位10进制整数x和y,你需要计算x*y. Input 第一行一个正整数n. 第二行描述一个位数为n的正整数x. 第三行描述一个位 ...

  6. git 学习(一)初始化和提交

    git 学习(一) 创建git版本库 $ mkdir gitstudy $ cd gitstudy $ git init nitialized empty Git repository in /Use ...

  7. Vulnerabilities by Type

    w http://hackergossips.com/cross-site-scriptingxss-and-preventing/

  8. IO流入门-第一章-FileInputStream

    FileInputStreamj基本用法和方法示例 import java.io.*; public class FileInputStreamTest01 { public static void ...

  9. java中的System.copyof()与Array.copyof()区别

    java中的System.copyof()与Array.copyof()区别 在复制数组时我们可以使用System.copyof(),也可以使用Array.copyof(),但是它们之间是有区别的.以 ...

  10. 我的Android进阶之旅------>解决Android Studio编译后安装apk报错:The APK file does not exist on disk

    1.错误描述 今天用Android Studio编译应用后安装APK的时候,报错了,错误如下所示: The APK file build\outputs\apk\OYP_2.3.4_I2Base_64 ...