2021-01-30

Sat 30 06:00 12:00 06:00 Jan 31 06:00 12:00 06:00 February 已完成 day4面向变量 进行中 day1blog撰写 计划中 day5对象1 现有任务 GANTT diagram functionality to JAVA basical learning

系列内容索引:

1、Java前置知识学习 什么是Java Java的由来与发展 Java能做什么(语言漫谈,语言的本质是一种约束) 为什么要学Java? Java JDK安装(顺带讲一下Java运行机制) Java环境变量配置 Java利器——idea 安装与使用

2、 Java基础1: 注释 标识符和关键字 数据类型(基本类型、引用类型) 类型转化 Scanner类讲解 简单的helloword程序

3、Java基础2: 变量、常量、作用域 基本运算符(加减乘除、取余、逻辑运算符) 流程控制(if、switch、while、do-while、for、增强for循环(如果可以,原理也可以讲下)、break、continue、goto等等) (作业可以类似于打印九九乘法表)

4、 Java基础3: 包机制 方法(什么是方法、定义与使用、方法的重载、可变参数的传递) 数组(什么是数组、数组的声明与创建、二维数组)

5、 面向对象1(封装与抽象):封装(何为封装、为何要封装、封装的简单案例) 类和对象的创建 构造器的使用 创建简单的对象类并赋予相应方法

6、面向对象2(继承与接口):问题引入(给定一个场景,引导思考,紧接着引出继承) Java的继承机制 抽象类和抽象方法(abstract) 面向接口编程(接口是什么,怎么用接口,使用接口的好处) 继承与接口的区别

问题思考

1、什么是面向对象?


将相关的数据和方法放在一起,组合成一种新的复合数据类型,然后使用新创建的复合数据类型作为项目的基础。

2、什么是对象?
java中的对象也具有它的状态和行为,只不过需要我们自己抽象出来。简单的来说就是模仿现实世界然后用语言创建出来。
一系列行为与属性的一个集合

3、面向对象的程序设计与面向过程的程序设计有什么区别?

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。

问题与模型

4、当我们谈及面向对象时,我们所关心的是什么?

面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石。
面向对象编程语言是支持类或对象的语法机制,并有现成的语法机制,能方便地实现面向对象编程四大特性(封装、抽象、继承、多态)的编程语言。

面向对象的编程有三大特性:封装、继承和多态。

而我们今天聚焦于封装

由String类引入封装

大家前几天上课都着重于Java的基础语法,其中在讲数据类型时,应当是区分了基本类型与引用类型,其中,用的最多的引用类型,就是String

//ctrl+B跳转查看Java源码。

如何去创建一个类?-》构造器,”this“

如何去设计一个类?

如何去封装一个类?

知识储备

this关键字
构造器
  • 构造函数名称必须与其类名称相同

  • 构造函数必须没有显式返回类型

构造器分为两种:

  1. 默认构造函数(无参数构造函数)

  2. 参数化构造函数

修饰符
修饰符/位置类内部本包子类外部包
public
protected×
default××
private×××
不那么”面向对象“的设计——static关键字

static静态代码块:

执行顺序:静态代码块->非静态代码块->构造函数

import static:

import static java.lang.Math.*;

public class StaticImportTest {
    public static void main(String[] args) {
        // out是java.lang.System类的静态成员变量,代表标准输出
        // PI是java.lang.Math类的静态成员变量,表示π常量
        out.println(PI);
        // 直接调用Math类的sqrt静态方法,返回256的正平方根
        out.println(sqrt(256));
    }
}

作业

1、设计两个类,每个类中需要有三个以上属性,get,set方法,构造器,以及额外定义三个以上的方法,思考这两个类之间如何交互,最好能体现在代码里面。

作业如下:

import java.util.Scanner;


//一个简单输入age并检测是否符合范围的程序
public class demo6 {
    private int age;
    public static boolean flag=false;
    //提供方法来操作age属性
    public void setAge(int age) {
        if (age > 130 || age < 0) {
            System.out.println("您的年龄必须要在0~130之间");
        } else {
            this.age = age;
            flag=true;

        }
    }

    public int getAge() {
        return this.age;
    }
    public boolean judge() {
        return flag;
    }
}
class doit{
    public static void main(String[] args) {
        System.out.println("请输入你的年龄");
        Scanner sc = new Scanner(System.in);
        int i = Integer.parseInt(sc.next());
        demo6 dd = new demo6();
        dd.judge();
        dd.setAge(i);
        if (dd.judge()) {
            System.out.println("你的年龄为:");
            System.out.println(dd.getAge());
        }
    }
}




运行结果:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值