皮皮安学习Java

Java学习的第三天(对象与类)

写在前面

终于到了对象与类了,虽然到现在我还没有对象,要啥对象,要啥对象,new一个不就行了...今天花两百块钱买了汤小洋老师的Java课程,听说还可以,能登上CSDN推荐的应该都不赖吧。其实要视频课的话,b站上的尚学堂听说也还不错,说是学,但是要我看免费课,总让我有一种漫不经心的感觉,毕竟花了我接近两百块钱,总归冲这肉疼这一点,我也要看完,150多个小时,应该够我看看了。

今日所学

1.面向对象程序设计概述(object-oriented programming,OOP)

    面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。

    类:构造对象的模板或蓝图...我还是说说我对类的理解吧,类,顾名思义为一类,用来定义属性相同的一组对象的集合(也不知道对不对)。由类构造对象的过程称为创建类的实例。

    对象:它来了,她真的来了。想什么呢,以汤小洋老师的话来说,世间万物皆对象!所以以后你就可以...。咳咳咳,言归正传,对象能够表示现实事物。这么来看,对象还是挺好理解哈...

    要使用OOP,一定要清楚对象的三个主要特性:行为,状态,标识。

    类与之间的关系:依赖("uses-a"),聚合("has-a"),继承("is-a")。

2.使用预定于类

    对象与对象变量

        要想使用对象,首先必须构造对象,并指定其初始状态。然后对对象应用方法。啥也别说了,先放码过来。

import java.time.DayOfWeek;
import java.time.LocalDate;

public class CalendarTest {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now();
        int month = date.getMonthValue();
        int today = date.getDayOfMonth();

        date = date.minusDays(today-1);
        DayOfWeek weekday = date.getDayOfWeek();
        int value = weekday.getValue();

        System.out.println("Mon Tue Wed Thu Fri Sat Sun");
        for (int i = 1; i < value;i++)
        {
            System.out.print("    ");
        }
        while (date.getDayOfMonth() == month)
        {
            System.out.printf("%3d",date.getDayOfMonth());
            if (date.getDayOfMonth()==today)
                System.out.print("*");
            else
                System.out.print(" ");
            date = date.plusDays(1);
            if (date.getDayOfWeek().getValue() == 1)
                System.out.println();
        }
        if (date.getDayOfWeek().getValue() != 1)
            System.out.println();
    }
}

        书上以日历程序介绍预定义类,说实话,我看的有点晕乎,硬着头皮总结吧。

        要构造应该Date对象,需要在构造器(构造函数)前面加上new操作符:new Date(),如果需要的话,可以将这个对象传递一个方法:System.out.print(new Date());

        这个语句可以说明如何对新构造Date对象应用toString:String s = new Date().toString():

3.用户自定义类

先看源码

import java.time.LocalDate;
import java.time.*;
public class EmployeeText {
    public static void main(String[] args) {
        Employee[] staff = new Employee[3];

        staff[0] = new Employee("Carl Cracker", 75000, 1987, 12, 15);
    }
}

class Employee {
        private final String name;
        private double salary;
        private LocalDate hireDay;


        public Employee(String n, double s, int year, int month, int day) {
            name = n;
            salary = s;
            hireDay = LocalDate.of(year, month, day);
        }

        public String getName() {
            return name;
        }

        public double getSalary() {
            return salary;
        }

        public LocalDate getHireDay() {
            return hireDay;
        }

        public void raiseSalary(double byPercent) {
            double rasie = salary * byPercent / 100;
            salary += rasie;
        }
    }

Employee类包含一个构造器和4个方法:

public Employee(String n, double s, int year, int month, int day)

public String getName()

public double getSalary()

public LocalDate getHireDay()

public void raiseSalary(double byPercent)

    构造器:构造器与类同名:每个类可以有一个以上的构造器:构造器可以有0个、1个或多个参数:构造器没有返回值;构造器总是伴随着new操作符一起调用。

    隐式参数与显式参数

       隐式参数:出现在方法名前面的对象。显式参数:位于方法名后面括号中的数值。一般用关键字this指示隐式参数

    私有方法:要实现私有方法,将关键字public改成private。

    final实例字段:可以将实例字段定义为final,这样的字段必须在构造对象时初始化。这个字段的值已经设置,并且不能再修改这个字段。

今天学的貌似有点少了,可能内容比较难理解,也可能没那么好表达了,基本都是根据源码来展开描述的,慢慢来,加油。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值