类与对象

  • 函数与调用
    • 函数是通过对象来调用的
    • 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 }

    运行结果

  •  

     

posted on 2020-01-13 21:48  生长的力量  阅读(157)  评论(0编辑  收藏  举报