Java学习路线-2:面向对象-类(4)

简介: Java学习路线-2:面向对象-类

19、案例分析一(Address)

实现一个地址类,包含国家,省份,城市,街道,邮政编码

实现一个简单java类

class Address {
    private String country;
    private String province;
    private String city;
    private String street;
    private String zipcode;
    // setter
    public void setCountry(String country){
        this.country = country;
    }
    public void setProvince(String province){
        this.province = province;
    }
    public void setCity(String city){
        this.city = city;
    }
    public void setStreet(String street){
        this.street = street;
    }
    public void setZipcode(String zipcode){
        this.zipcode = zipcode;
    }
    // getter
    public String getCountry(){
        return this.country;
    }
    public String getProvince(){
        return this.province;
    }
    public String getCity(){
        return this.city;
    }
    public String getStreet(){
        return this.street;
    }
    public String getZipcode(){
        return this.zipcode;
    }
    // info
    public String getInfo(){
        return "国家: " + this.country +
               ", 省份: " + this.province + 
               ", 城市: " + this.city + 
               ", 街道: " + this.street + 
               ", 邮政编码: " + this.zipcode;
    }
    public Address(String country, String province, String city, String street, String zipcode){
        this.country = country;
        this.province = province;
        this.city = city;
        this.street = street;
        this.zipcode = zipcode;
    }
    public static void main(String[] args) {
        Address address = new Address("中国", "北京", "朝阳", "大望路", "10001");
        System.out.println(address.getInfo());
        // 国家: 中国, 省份: 北京, 城市: 朝阳, 街道: 大望路, 邮政编码: 10001
    }
}

20、案例分析二(Employee)

实现一个员工类,包含编号,姓名,薪水,税率,还包括薪水增长计算和增长后的工资

class Employee{
    private long no;
    private String name;
    private double salary;
    private double rate;
    // setter getter ...
    public String getInfo(){
        return "编号:" + this.no + 
                ", 姓名: " + this.name + 
                ", 薪水 " + this.salary + 
                ", 涨幅: " + this.rate; 
    }
    public void increaseSalary(){
        this.salary = this.salary * (1 + this.rate);
    }
    public Employee(long no, String name, double salary, double rate){
        this.no = no;
        this.name = name;
        this.salary = salary;
        this.rate = rate;
    }
    public static void main(String[] args){
        Employee employee = new Employee(1L, "张三", 3000.0, 0.3);
        System.out.println(employee.getInfo());
        // 编号:1, 姓名: 张三, 薪水 3000.0, 涨幅: 0.3
        employee.increaseSalary();
        System.out.println(employee.getInfo());
        // 编号:1, 姓名: 张三, 薪水 3900.0, 涨幅: 0.3
    }
}

21、案例分析三(Dog)

创建Dog类,有名字,颜色,年龄,定义构造方法初始化属性

class Account{
    private String name;
    private double balance;
    public Account(String name){
        this(name, 0.0);
    }
    public Account(String name, double balance){
        this.name = name;;
        this.balance = balance;;
    }
    // 查询余额
    public double getBalance(){
        return this.balance;
    }
    public static void main(String[] args) {
        Account account = new Account("张三", 2000.0);
        System.out.println(account.getBalance());
        // 2000.0
    }
}

22、案例分析四(Account)

定义银行账户类,包括

1、数据:账户名称,账户余额

2、方法:开户(设置账号,余额),利用构造方法完成

3、查询余额

class Account{
    private String name;
    private double balance;
    public Account(String name){
        this(name, 0.0);
    }
    public Account(String name, double balance){
        this.name = name;;
        this.balance = balance;;
    }
    // 查询余额
    public double getBalance(){
        return this.balance;
    }
    public static void main(String[] args) {
        Account account = new Account("张三", 2000.0);
        System.out.println(account.getBalance());
        // 2000.0
    }
}

23、案例分析五(User)

创建用户类

1、用户名,记录用户个数

2、获取用户数

class User{
    private String name;
    private static int count = 0;
    public User(String name){
        this.name = name;
        count++;
    }
    public static int getCount(){
        return count;
    }
    public static void main(String[] args) {
        User user1 = new User("小明");
        User user2 = new User("小红");
        User user3 = new User("小花");
        System.out.println(User.getCount());
        // 3
    }
}

24、案例分析六(Book)

创建图书类

数据:书名,价格,编号(利用静态数据实现自动编号)

方法:统计总数

class Book{
    private int uid;
    private String name;
    private double price;
    private static int count = 0;
    public Book(String name, Double price){
        count++;
        this.uid = count;
        this.name = name ;
        this.price = price ;
    }
    public String getInfo(){
        return "<"+ this.uid + "> <<" + this.name +">> "+ this.price;
    }
    public static int getCount(){
        return count;
    }
    public static void main(String[] args) {
        Book book1 = new Book("今日头条", 12.0);
        Book book2 = new Book("百度", 14.0);
        Book book3 = new Book("腾讯", 11.0);
        System.out.println(Book.getCount()); 
        // 3
        System.out.println(book3.getInfo());
        // <3> <<腾讯>> 11.0
    }
}
相关文章
|
3月前
|
IDE Java 关系型数据库
Java 初学者学习路线(含代码示例)
本教程为Java初学者设计,涵盖基础语法、面向对象、集合、异常处理、文件操作、多线程、JDBC、Servlet及MyBatis等内容,每阶段配核心代码示例,强调动手实践,助你循序渐进掌握Java编程。
481 3
|
3月前
|
SQL Java 数据库
2025 年 Java 从零基础小白到编程高手的详细学习路线攻略
2025年Java学习路线涵盖基础语法、面向对象、数据库、JavaWeb、Spring全家桶、分布式、云原生与高并发技术,结合实战项目与源码分析,助力零基础学员系统掌握Java开发技能,从入门到精通,全面提升竞争力,顺利进阶编程高手。
719 1
|
3月前
|
安全 Java 数据建模
Java记录类:简化数据载体的新选择
Java记录类:简化数据载体的新选择
264 101
|
3月前
|
安全 Java 开发者
Java记录类:简化数据载体的新方式
Java记录类:简化数据载体的新方式
302 100
|
2月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
116 4
|
2月前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
206 5
|
3月前
|
SQL 算法 Java
零基础到精通的史上最强 Java 学习路线图推荐
史上最全Java学习路线图,涵盖基础语法、面向对象、数据结构与算法、多线程、JVM、Spring框架、数据库及项目实战,助你从零基础到精通Java开发,附完整代码与工具推荐。
276 4
零基础到精通的史上最强 Java 学习路线图推荐
|
2月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
196 1
|
2月前
|
Java Go 开发工具
【Java】(8)正则表达式的使用与常用类分享
正则表达式定义了字符串的模式。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
247 1
|
2月前
|
存储 Java 程序员
【Java】(6)全方面带你了解Java里的日期与时间内容,介绍 Calendar、GregorianCalendar、Date类
java.util 包提供了 Date 类来封装当前的日期和时间。Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
199 1