类与对象

  • 函数与调用

    • 函数是通过对象来调用的
    • this
    • 是成员函数的特殊的固有的本地变量
    • 它表达了调用这个函数的那个对象
  • 调用函数
    • 通过 . 运算符,调用某个对象的函数
    • 在成员函数内部直接调用自己(this)的其他函数
  • 本地变量
    • 定义在函数内部的变量是本地变量
    • 本地变量的生存期和作用域都是函数内部
  • 成员变量
    • 生存期是对象的生存期
    • 基本作用域是类内部的成员函数
    • 按照private、protected、public、和default有不同的作用域
  • 对象初始化
    • 构造函数
    • 函数重载
    • this()可以在构造函数里调用其他构造函数
  •   
    1. package com.study;
    2.  
    3. import java.util.Scanner;
    4.  
    5. public class Main
    6. {
    7.  
    8. public static void main(String[] args)
    9. {
    10. Scanner in = new Scanner(System.in);
    11. Fraction a = new Fraction(in.nextInt(), in.nextInt());
    12. Fraction b = new Fraction(in.nextInt(), in.nextInt());
    13. a.print();
    14. b.print();
    15. a.plus(b).print();
    16. a.multiply(b).plus(new Fraction(5, 6)).print();
    17. a.print();
    18. b.print();
    19. in.close();
    20. }
    21.  
    22. }
    23.  
    24. class Fraction
    25. {
    26.  
    27. private int fenzi;
    28. private int fenmu;
    29.  
    30. void huajian()
    31. {
    32. int c=maxYueShu(fenzi, fenmu);
    33. fenzi=fenzi/c;
    34. fenmu=fenmu/c;
    35.  
    36. }
    37.  
    38. int maxYueShu(int a, int b)
    39. {
    40. int gcd = 1;
    41.  
    42. for (int i = 2; i <= (a < b ? a : b); i++)
    43. {
    44. if ((a % i == 0) && (b % i == 0))
    45. {
    46. gcd = i;
    47. }
    48. }
    49. return gcd;
    50. }
    51.  
    52. Fraction(int a, int b)
    53. {
    54. fenzi = a;
    55. fenmu = b;
    56. huajian();
    57. }
    58.  
    59. double toDouble()
    60. {
    61. double num = fenzi / (double) fenmu;
    62. return num;
    63. }
    64.  
    65. Fraction plus(Fraction r)
    66. {
    67. Fraction b = new Fraction(r.fenmu * fenzi + fenmu * r.fenzi, fenmu * r.fenmu);
    68. return b;
    69. }
    70.  
    71. Fraction multiply(Fraction r)
    72. {
    73. Fraction b=new Fraction(r.fenzi*fenzi,r.fenmu*fenmu);
    74. return b;
    75. }
    76.  
    77. void print()
    78. {
    79. if(fenzi%fenmu==0)
    80. {
    81. System.out.println(fenzi/fenmu);
    82. }
    83. else
    84. {
    85. System.out.println(fenzi+"/"+fenmu);
    86. }
    87. }
    88.  
    89. }

    运行结果

Java进阶学习(1)之类与对象(下)的更多相关文章

  1. Java进阶2 数组内存和对象的内存管理知识

    Java进阶2 数组内存和对象的内存管理知识 20131028 前言: 在面试的时候,如果是Java的编程语言,也许你认为没有什么可以问的,只能够说明你对于Java了解的太浅了,几乎就是两个星期的节奏 ...

  2. Java进阶学习:将文件上传到七牛云中

    Java进阶学习:将文件上传到七牛云中 通过本文,我们将讲述如何利用七牛云官方SDK,将我们的本地文件传输到其存储空间中去. JavaSDK:https://developer.qiniu.com/k ...

  3. Java进阶学习:log4j的学习和使用

    Java进阶学习——log4j的学习和使用 简介Loj4j Log4j的组成 Log4j主要由三大组组件构成: Logger: 负责生成日志,并能够对日志信息进行分类筛选,通俗的讲就是决定什么日志信息 ...

  4. 《java JDK7 学习笔记》之对象封装

    1.构造函数实现对象初始化流程的封装.方法封装了操作对象的流程.java中还可以使用private封装对象私有数据成员.封装的目的主要就是隐藏对象细节,将对象当做黑箱子进行操作. 2.在java命名规 ...

  5. Java反射学习-5 - 反射复制对象

    通过反射方式复制对象: package cn.tx.reflect; import java.lang.reflect.Constructor; import java.lang.reflect.Fi ...

  6. Java进阶学习(3)之对象容器(下)

    对象数组 对象数组中的每个元素都是对象的管理者而非对象本身 对象数组的for—each循环 集合容器(HashSet) HashSet 数学中的集合,元素间满足互异性.确定性.无序性 HashSet& ...

  7. Java进阶学习(2)之对象交互(下)

    访问属性 封闭的访问属性 private等访问权限控制是对类的,这意味着同一类的不同对象可以互相访问其成员 这是从代码层面去考虑的,意味着不同类文件 开放的访问属性 一个类文件就是一个编译单元 pub ...

  8. Java进阶学习(4)之继承与多态(下)

    多态变量和向上造型 多态变量 子类和子类型 类定义了类型 子类定义了子类型 子类的对象可以被当作父类的对象来使用 赋值给父类的变量 传递给需要父类对象的函数 放进存放父类对象的容器里 多态变量 Jav ...

  9. Java进阶学习(3)之对象容器.小练习

    查找里程(10分) 题目内容: 下图为国内主要城市之间的公路里程: 你的程序要读入这样的一张表,然后,根据输入的两个城市的名称,给出这两个城市之间的里程. 注意:任何两个城市之间的里程都已经给出,不需 ...

随机推荐

  1. python2下解决json的unicode编码问题

    基础知识:   序列化——json.dumps()函数是将一个Python数据类型列表进行json格式的编码(可以这么理解,json.dumps()函数是将字典转化为json字符串)   反序列化—— ...

  2. vscode+vue 一些基本操作

    1.安装好 vscode 和 node.js 安装node.js是为了用npm(管理项目依赖) 2.调出终端 crtl +~ , 3.终端全局安装 vue-cli  安装整个脚手架,能快速给我们构建v ...

  3. APP开发工具如何选?

    随着技术的发展,在当前开发一款APP已经非常的简单和快速.特别是近些年,利用HTML5技术将APP的开发门槛进一步降低.各种开发工具和框架层出不穷,令人眼花缭乱.这么多的工具摆在眼前应该如何进行选择呢 ...

  4. element 表格里的input点击回车聚焦下个input

    <template> <card> <el-table ref="singleTable" :data="tableData" h ...

  5. IntelliJ IDEA 2017.3尚硅谷-----生成 javadoc

    Locale:输入语言类型:zh_CN Other command line arguments:-encoding UTF-8 -charset UTF-8

  6. mysql(5):主从复制和分库分表

    主从复制集群 概念:主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点. 使用场景: 读写分离:使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读 ...

  7. asp.net + MVC5 入门完整教程一

    原文链接:https://blog.csdn.net/qq_21419015/article/details/80311918原创凌霜残雪 最后发布于2018-05-14 17:26:30 阅读数 3 ...

  8. 【译】从 Rust 到不只是 Rust:PHP 语言领域

    From Rust to beyond: The PHP galaxy 译文 原文地址:https://mnt.io/2018/10/29/from-rust-to-beyond-the-php-ga ...

  9. [git] git合并冲突 本地已有项目上传 各种问题

    git... 讲道理 我现在能隐约感觉到他的强大控制能力了 但是依旧是不习惯.... 无论是什么操作 在我这里都会出问题,,,, 上传本地已有的项目到码云 首先需要现在码云创建一个仓库 然后用git工 ...

  10. MinGW编译dll并引用

    记得某位神仙曾经说过:一个项目不使用dll简直是一场灾难.(滑稽) 这篇文章以A+B/A-B为范例,来介绍如何在MinGW下编译dll并引用. 首先你要安装MinGW,并配置好环境变量(不配置环境变量 ...