类与对象
- 函数与调用
- 函数是通过对象来调用的
- 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 }
运行结果
-