面向对象,构造器,继承。

面向对象

晚饭吃什么?模拟人类社会编程

吃饭–》若干动作–》C–》过程性语言(模拟计算机)

吃饭–》结果

找对象

找对象(object):对象是一个有一定职责的东西。

对象–》抽象概念(类)

object class

Car

类名

属性:有什么

在这里插入图片描述

方法:能干什么

在这里插入图片描述

main实现图纸(属性,方法)

设计一个“类”——要有属性(变量),方法(函数)

实现的载体–对象

set 改动
get 取出

在这里插入图片描述

this
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Carx

在这里插入图片描述
在这里插入图片描述

力扣

415. 字符串相加

给定两个字符串形式的非负整数 num1num2 ,计算它们的和并同样以字符串形式返回。

你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。

//可以补零,空位按零计算

BigDecimal

在这里插入图片描述

BigInterger

在这里插入图片描述

3110. 字符串的分数

给你一个字符串 s 。一个字符串的 分数 定义为相邻字符 ASCII 码差值绝对值的和。

请你返回 s分数

class Solution {  
    public int scoreOfString(String s) {  
        char[] charArray = s.toCharArray(); // 将输入字符串转换为字符数组  
        int ans = 0;  
        for (int i = 1; i < charArray.length; i++) {  
            // 由于我们处理的是字符,需要将它们转换为整数(例如,通过它们的ASCII值)来进行计算  
            // 但在这里,我们假设字符都是数字字符,并且我们想要计算相邻字符之间的差的绝对值  
            // 因此,我们可以直接减去字符(这实际上会减去它们的ASCII值),因为ASCII值在'0'到'9'之间是连续的  
            ans += Math.abs(charArray[i] - charArray[i - 1]);  
              
            // 注意:这里的计算实际上给出的是ASCII值之差的绝对值,  
            // 如果输入字符串只包含数字字符,那么这相当于计算了相邻数字之间的差的绝对值。  
            // 如果字符串可能包含非数字字符,这个计算就没有意义了。  
        }  
        return ans;  
    }  
}

构造器

对象的引用(reference)

在这里插入图片描述

类的设计

一定具有某种职责

类名

类名表示某种实物

Student drom sushe…

属性

类的特征,类具有什么?

存储数据,基本信息

方法

类的动作,能做什么?

Setter/Getter

属性加set,get方法

set给属性赋值

void setSpeed(double speed){

}

将结果变成字符串返回

在这里插入图片描述

//注释tostring后,打印

在这里插入图片描述

this

this代表当前对象

this.brand = “RSL”

==

面向对象中,两个引用指向 同一个 对象

基本数据类型中,比较的是数值。

在这里插入图片描述

equals

不重写的默认情况下,equals与==一样

构造器

结构上——类名();

类似类名和方法,又叫构造方法

主要目的:对象的初始化

  1. 引用类型String初始值:null
  2. 基本数据类型int(0);double(0.0)

?可以在初始对象时,给初始值吗

:用构造器

构造器初始值

在这里插入图片描述
在这里插入图片描述

无参构造器

写上给别人用

在这里插入图片描述

全参构造器(in order)

自定义构造器

在这里插入图片描述

电视选台

在这里插入图片描述

控制器;TV;测试类。

引用传递问题

new—指向了一个新的;

= — 连接指向

在这里插入图片描述
在这里插入图片描述

null–引用对象pc没有和任何对象绑定;Pc pc = null;

形参是一个拷贝,参数出现引用类型,只要出现了new

在这里插入图片描述

时间问题

常用类:

Date,SimpleDateFormat,Calendar()—辅助类(之前还学过Array,Random…)

如何获取系统时间——Data

package com.ffyc.Date;

import java.util.Date;

public class DataDemo {
    public static void main(String[] args) throws InterruptedException {
//        Date date = new Date();//先写好右边可以补全左边alt+回车
//        System.out.println("当前时间:"+date);
//        System.out.println("从1970年到现在的毫秒数:"+date.getTime());
//        Thread.sleep(1000);
//            Date date1 = new Date();
//        System.out.println("从1970年到现在的毫秒数:"+date1.getTime());//从1970
//        Thread.sleep(100);
//        System.out.println("毫秒数:"+System.currentTimeMillis());
        Date d = new Date();
        long time = d.getTime()+1000*10;//10s后开启
        while (true) {
        Date date = new Date();
        if (time==date.getTime()){
            System.out.println("时间开启...");
            break;
        }

//            System.out.println(d);
//            Thread.sleep(1000);
        }


    }
}

时间日期格式转换——SimpleDateFormat

在这里插入图片描述

format()

Date—>String

在这里插入图片描述

parse()

解析:字符串解析为日期

String—>Data

在这里插入图片描述

日历类(Calendar)

package com.ffyc.date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

/**
 * 输入一个年月日,计算出是周几 9.1
 */
public class CalendarDemo {
    public static void main(String[] args) throws ParseException {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要计算的年月日(yyyy-MM-dd):");
        String line = sc.nextLine();

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date = sdf.parse(line);

        Calendar instance = Calendar.getInstance();  //当前年月日
        instance.setTime(date);

        Calendar now = Calendar.getInstance();  //当前年月日

        System.out.println(now.before(instance));

//        instance.add(Calendar.DAY_OF_MONTH, 9);
//        instance.add(Calendar.DAY_OF_MONTH,-10);


        System.out.println("年: " + instance.get(Calendar.YEAR));
        System.out.println("月: " + (instance.get(Calendar.MONTH) + 1));
        System.out.println("今年第几天日: " + instance.get(Calendar.DAY_OF_YEAR));
        System.out.println("日: " + instance.get(Calendar.DAY_OF_MONTH));
        System.out.println("时:" + instance.get(Calendar.HOUR_OF_DAY));
        System.out.println("周几:" + instance.get(Calendar.DAY_OF_WEEK));

    }
}

继承

核心

辅助类

大数据的运算

方法

  • +:add
  • -:subtract
  • *:multiply
  • /:divide

eg:大数据的运算

在这里插入图片描述

package com.ffyc.number;

import org.omg.CosNaming.BindingIterator;

import java.math.BigDecimal;

public class BigDecimalDemo {
    public static void main(String[] args) {
        String a= "444444444555555555555";
        String b="5555555555555555555555555555599999999999999999999911111111";

        BigDecimal x = new BigDecimal(a);
        BigDecimal y = new BigDecimal(b);

        BigDecimal c = x.add(y);
        System.out.println(c);
    }
}

  • 16
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值