栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java面向对象

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java面向对象

方法
package com.Shayne;

public class Main {
    //Mortgage Caculator
    public static void main(String[] args) {
        greetUser("Shayne", "Chen");
    }
    public static void greetUser(String firstName, String lastName){
        System.out.println("Hello " + firstName + " " + lastName);
    }
}
package com.Shayne;

public class Main {
    //Mortgage Caculator
    public static void main(String[] args) {
        String message = greetUser("Shayne", "Chen");
        System.out.println(message);
    }
    public static String greetUser(String firstName, String lastName){
        return "Hello " + firstName + " " + lastName;
    }
}

加强版MortgageCalculator

package com.Shayne;

import java.text.NumberFormat;
import java.util.Locale;
import java.util.Scanner;

public class Main {
    //Mortgage Caculator
    final static byte MONTHS_IN_YEAR = 12;
    final static byte PERCENT = 100;
    public static void main(String[] args) {

        int principal = (int) readNumber("Principal: ", 1000, 1_000_000);
        float annualInterest = (float)readNumber("Annual Interest Rate: ", 1, 30);
        byte years = (byte) readNumber("period (Years): ", 1, 30);

        printMortgage(principal, annualInterest, years);
        printPaymentSchedule(principal, annualInterest, years);

    }

    private static void printPaymentSchedule(int principal, float annualInterest, byte years) {
        System.out.println("nPAYMENT SCHEDULEn----------------");
        for (int month = 1; month <= years * MONTHS_IN_YEAR; month++){
            String balance = NumberFormat.getCurrencyInstance(Locale.US).format(calculateBalance(years, principal, annualInterest, month));
            System.out.println(balance);
        }
    }

    private static void printMortgage(int principal, float annualInterest, byte years) {
        String mortgage = NumberFormat.getCurrencyInstance(Locale.US).format(calculateMortgage(principal, annualInterest, years));
        System.out.println("nMORTGAGEn--------");
        System.out.println("Monthly Patments: " + mortgage);
    }

    public static double readNumber(String prompt, double min, double max)  {
        Scanner scanner = new Scanner(System.in);
        double value;
        while (true) {
            System.out.print(prompt);
            value = scanner.nextFloat();
            if (value >= min && value <= max)
                break;
            System.out.println("Enter a value between" + min + " and " + max);
        }
        return value;
    }

    public static double calculateMortgage(
            int principal,
            float annualInterest,
            byte years) {

            float monthlyInterest = annualInterest / PERCENT / MONTHS_IN_YEAR;
            short numberOfPayments = (short) (years * MONTHS_IN_YEAR);
            double mortgage = (principal * monthlyInterest * Math.pow(1 + monthlyInterest, numberOfPayments)) / (Math.pow(1 + monthlyInterest, numberOfPayments) - 1);

            return mortgage;
    }

    public static double calculateBalance(byte years, int principal, float annualInterest, int numberOfPaymentMade) {

        float monthlyInterest = annualInterest / PERCENT / MONTHS_IN_YEAR;
        short numberOfPayments = (short) (years * MONTHS_IN_YEAR);

        double balance = principal
                * (Math.pow(1 + monthlyInterest, numberOfPayments) - Math.pow(1 + monthlyInterest, numberOfPaymentMade))
                / (Math.pow(1 + monthlyInterest, numberOfPayments) - 1);

        return balance;
    }
}
类和对象
package com.Shayne;

public class Main {
    public static void main(String[] args) {
        var textBox1 = new TextBox();
        textBox1.setText("Box 1");
        System.out.println(textBox1.text.toUpperCase());

        var textBox2 = new TextBox();
        textBox2.setText("Box 2");
        System.out.println(textBox2.text);
    }
}

package com.Shayne;

public class TextBox {
    public String text = ""; //Field

    public void setText(String text) {
        this.text = text;
    }

    public void clear() {
        text = "";
    }
}

package com.Shayne;

public class Main {
    public static void main(String[] args) {
        var textBox1 = new TextBox();
        var textBox2 = textBox1;
        textBox2.setText("Hello World");
        System.out.println(textBox1.text);
    }
}

package com.Shayne;

public class Main {
    public static void main(String[] args) {
        var textBox1 = new TextBox();
        var textBox2 = textBox1;
        textBox2.setText("Hello World");
        System.out.println(textBox1.text);
    }
}
Encapsulation

procedural Programming

package com.Shayne;

public class Main {
    public static void main(String[] args) {
        int baseSalary = 50_000;
        int extraHours = 10;
        int hourlyRate = 20;

        int wage = calcilateWage(baseSalary, extraHours, hourlyRate);
        System.out.println(wage);
    }

    public static int calcilateWage(
        int baseSalary,
        int extraHours,
        int hourlyRate
    ) {
        return baseSalary + (extraHours * hourlyRate);
    }
}

encapsulation

package com.Shayne;

public class Main {
    public static void main(String[] args) {
        var employee = new Employee();
        employee.baseSalary = 50_000;
        employee.hourlyRate = 20;
        int wage = employee.calculateWage(10);
        System.out.println(wage);
    }
}

package com.Shayne;

public class Employee {
    public int baseSalary;
    public int hourlyRate;

    public int calculateWage(int extraHours) {
        return baseSalary + (hourlyRate * extraHours);
    }
}

Getters and Setters

package com.Shayne;

public class Main {
    public static void main(String[] args) {
        var employee = new Employee();
        employee.setbaseSalary(50_000);
        employee.setHourlyRate(20);
        int wage = employee.calculateWage(10);
        System.out.println(wage);
    }
}

package com.Shayne;

public class Employee {
    private int baseSalary;
    private int hourlyRate;

    public int calculateWage(int extraHours) {
        return baseSalary + (getHourlyRate() * extraHours);
    }

    public void setbaseSalary(int baseSalary) {
        if (baseSalary <= 0)
            throw new IllegalArgumentException("Salary cannot be 0 or less.");
        this.baseSalary = baseSalary;
    }

    public int getbaseSalary() {
        return baseSalary;
    }

    public int getHourlyRate() {
        return hourlyRate;
    }

    public void setHourlyRate(int hourlyRate) {
        if (hourlyRate <= 0)
            throw new IllegalArgumentException("Hourly rate cannot be 0 or negative.");
        this.hourlyRate = hourlyRate;
    }
}

static members

package com.Shayne;

public class Main {
    public static void main(String[] args) {
        var employee = new Employee(50_000, 20);
        Employee.printNumberOfEmployees();
        int wage = employee.calculateWage();
        System.out.println(wage);
    }
}

package com.Shayne;

public class Employee {
    private int baseSalary;
    private int hourlyRate;

    public static int numberOfEmployees;

    public Employee(int baseSalary) {
        this(baseSalary, 0);
    }

    public Employee(int baseSalary, int hourlyRate) {
        setbaseSalary(baseSalary);
        setHourlyRate(hourlyRate);
        numberOfEmployees++;
    }

    public static void printNumberOfEmployees() {
        System.out.println(numberOfEmployees);
    }

    public int calculateWage(int extraHours) {
        return baseSalary + (getHourlyRate() * extraHours);
    }

    public int calculateWage() {
        return calculateWage(0);
    }

    private void setbaseSalary(int baseSalary) {
        if (baseSalary <= 0)
            throw new IllegalArgumentException("Salary cannot be 0 or less.");
        this.baseSalary = baseSalary;
    }

    private int getbaseSalary() {
        return baseSalary;
    }

    private int getHourlyRate() {
        return hourlyRate;
    }

    private void setHourlyRate(int hourlyRate) {
        if (hourlyRate < 0)
            throw new IllegalArgumentException("Hourly rate cannot be 0 or negative.");
        this.hourlyRate = hourlyRate;
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/750718.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号