Java day10

追进度啊。。。新java的对象相关。


1 在编写类的内部代码的时候,在类的内部new这么一个类?

——试答 :类内部是可以有一个main函数的,在这个main函数内部就可以创建类(具体作用类似于测试?)【构造函数用于初始化,内部main函数】


2 构造函数 是一开始就会被调用的函数(可以与类名相同,可以没什么意义)

是必须与类名相同,而且不能有返回类型(也就是说,如果要有返回类型,那就不能叫这个名字)

重载:一个类中可以有多个构造函数,区分这些构造函数的是函数要求的不同的输入参数。创建对象时如果使用不同的参数值,就会自动调用对应的构造函数。

可以用this() 调用其它构造函数,但是只能用一次


3 封装

private 只能在类内一层定义

(同一个类的不同对象之间,是可以互相访问其他对象的私有变量的!!)


4 一个编译单元只能有一个public 类


***** week1的作业代码

谈谈收获:

-1 类初始化用的是构造函数

-2 只有返回一个对象的内部函数,才能继续使用.这种形式

-3 内部之间调用不用加this,除非这部分有私有的同名变量

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		Fraction a = new Fraction(in.nextInt(), in.nextInt());
		Fraction b = new Fraction(in.nextInt(),in.nextInt());
		a.print();
		b.print();
		a.plus(b).print();
		a.multiply(b).plus(new Fraction(5,6)).print();
		a.print();
		b.print();
		in.close();
	}

}

class Fraction {
	int x,y;
	
	public Fraction(int a1,int a2){
		x = a1;
		y = a2;
	}
	//String outPut = new String();
	void print() {
		//判断是否是最简形式 ,认为为求两个数之间的最大公约数
		int temp = maxPublic(x,y);
		//如果最大公约数不是1 ,那么说明不是最简形式
		if(temp != 1){
			x /= temp;
			y /= temp;
	
		//判断xy是否相等 相等则输出1
		System.out.println( (x == y)?"1":(x+"/"+y));
	}
	
	int maxPublic(int in1,int in2) {
		int temp=0;
		while(in1%in2 != 0) {
			temp = in1%in2;
			in1 = in2;
			in2 = temp;
		}
		return in2;
	}
	
	//分数加法:分母相乘 分子乘以对方分母后相加
	Fraction plus(Fraction plusFra){
		//int temp= x * plusFra.y + y * plusFra.x;
		int x1,y1;
		x1 = x * plusFra.y + y * plusFra.x;
		y1 = y * plusFra.y;
		Fraction re = new Fraction(x1,y1);
		return re;
	}
	
	//分数乘法:上下相乘
	Fraction multiply(Fraction 
		int x1 = x * multiFra.x;
		int y1 = y * multiFra.y;
		Fraction re = new Fraction(x1,y1);
		return re;
	}
	
	//转double
	double toDouble(){
		double b = y+0.0;
		b = x/y;
		return b;
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值