ava少儿编程面试少儿编程java教程lemon的技术博客

看一个问题:有一群小孩在玩堆雪人,不时有新的小孩加入,问:如何知道现在共有多少人在玩?编写程序解决。

输出结果:

由输出结果看,上面代码虽然按照预期解决了问题,但是存在以下缺陷:

如果设计一个 int count 表示总人数,我们在创建一个小孩时,就把 count 加 1,并且count 是所有对象共享的就 ok 了,这就要用类变量 / 静态变量来解决。类变量 / 静态变量 最大的特点就是会被类的所有的对象实例共享。 引入类变量 / 静态变量后,上面的问题可以这样解决:

输出结果:

在JDK8之前,类变量的内存布局如红色虚线所示,JDK8之后如绿色实线所示(大概是这样,可能不是很准确)。

不管类变量在哪里,可以确定的是: (1)类变量可以被同一个类的所有对象共享。 (2)类变量在类加载的时候就生成了。

类变量 / 静态(static)变量 / 静态属性: 是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,任何一个该类的对象去修改它时,修改的也是同一个变量。

定义语法: (1)访问修饰符 static 数据类型 变量名;(推荐) (2)static 访问修饰符 数据类型 变量名;

访问: (1)类名 . 类变量名(推荐)     类变量是随着类的加载而创建,所以即使没有创建对象实例也可以访问。 (2)对象名 . 类变量名

静态变量访问修饰符的访问权限、范围与普通属性相同。

类方法也叫静态方法。

定义语法: (1)访问修饰符 static 返回类型 方法名(){ }(推荐) (2)static 访问修饰符 返回类型 方法名(){ }

调用: (1)类名 . 类方法名(推荐) (2)对象名 . 类方法名 前提:满足访问修饰符的访问权限和范围。

【例1】学生学费总和。

练习:

【例1】看看下面代码有没有错误,如果有错误,就修改,看看输出什么?

【例2】下面代码有没有错误,如果有错误,就修改。修改后,total 等于多少?

解释 main 方法的形式:public static void main(String[] args)

main()方法与普通static方法访问本类成员的规则一致:

输出结果:

代码块是什么:

语法:

【例】下面的三个构造器都有相同的语句,这样代码很啰嗦。可以把相同语句,放入一个代码块中。在创建对象时,不管调用哪个构造器,都会先调用代码块的内容。

输出结果:

输出结果:

输出结果:

输出结果:

③ 使用类的静态成员时(静态属性 / 方法) 【例1】

输出结果:

【例2】

输出结果:

输出结果:

输出结果:

创建一个对象时,在一个类中的调用顺序是:

① 调用静态代码块和静态属性初始化(两者优先级相同,若有多个静态代码块 / 属性初始化,则按定义顺序调用)。

② 调用普通代码块和普通属性的初始化(两者优先级相同,若有多个普通代码块 / 属性初始化,则按定义顺序调用)。

③ 调用构造方法。

输出结果:

输出结果:

创建子类对象时(继承关系),静态代码块,静态属性初始化,普通代码块,普通属性初始化,构造方法的调用顺序如下: ① 父类的静态代码块和静态属性(优先级一样,按定义顺序执行) ② 子类的静态代码块和静态属性(优先级一样,按定义顺序执行) ③ 父类的普通代码块和普通属性初始化(优先级一样, 按定义顺序执行) ④ 父类的构造方法 ⑤ 子类的普通代码块和普通属性初始化(优先级一样,按定义顺序执行) ⑥ 子类的构造方法

【例】 (1)加载类,由于B02有父类A02:  所以先加载父类A02:初始化静态属性(getVal01被调用)、调用静态代码块  再加载子类B02:初始化静态属性(getVal03被调用)、调用静态代码块 (2)创建B02对象:  进入B02的构造器 ➡ super()进入父类A02的构造器,在父类A02的构造器中:   super()调用Object类的构造器;   初始化普通属性(getVal02被调用)、调用普通代码块;   执行A02构造器中的剩余语句。  父类构造器执行完毕后,回到子类B02构造器,执行super()后面的语句:   初始化普通属性(getVal04被调用)、调用普通代码块;   执行B02构造器中的剩余语句。

输出结果:

在本类中,静态代码块只能直接访问静态成员(静态属性 / 方法),若要访问非静态成员可以先创建对象*;普通代码块可以直接访问任意成员。(静态代码块很多用法与静态方法相同)【注】静态代码块在类加载的时候执行,那时候还没有创建对象、没有初始化非静态成员,所以要先创建对象才能访问非静态成员。

【例】下面的代码输出什么?

输出结果:

(1)是静态方法和属性的经典使用。 (2)设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格以及解决问题的思考方式。设计模式就像是经典的棋谱,不同的棋局,我们用不同的棋谱,免去我们自己再思考和摸索。

单例设计模式: 单例就是单个的实例。类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。

单例模式有两种方式: (1)饿汉式 (2)懒汉式

饿汉式和懒汉式单例模式的实现步骤: (1)构造器私有化,防止直接 new (2)类的内部创建对象 (3)向外暴露一个静态的公共方法,getInstance (4)代码实现

输出结果:

输出结果:

有以下需求时,就会使用到final。

(1)不希望类被继承

(2)不希望父类的某个方法被子类覆盖/重写

(3)不希望类的某个属性的值被修改(常量)

(4)不希望某个局部变量被修改(常量)

输出结果:

若上面BBB类中的静态变量 n 不用 final 修饰,则会输出:

下面的代码是否有误,为什么?

看一个问题:写一个父类Animal,其中有一个eat方法,子类要重写该方法。但这时,父类如果写了eat方法,可能没有用,或者不知道方法体里面应该写什么。就像下面代码:

为了解决上述问题,将 eat 方法设计为抽象(abstract)方法。

所以,上述代码可以修改为:

【例】编写一个Employee类,声明为抽象类,包含如下三个属性 name, id, salary. 提供必要的构造器和抽象方法:work()。 对于Manager类来说,他既是员工,还 具有奖金(bonus)的属性。请使用继承的思想,设计CommonEmployee类和 Manager类,要求类中提供必要的方法进行属性访问,实现work(), 提示 “经理/普 通员工+名字+工作中…

输出结果:

抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造,但子类总体上会保留抽象类的行为方式。

(1)当功能内部一部分实现是确定的,一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现。 (2)编写一个抽象父类,父类提供了多个子类的通用方法,并把一个或多个方法留给其子类实现,就是一种模板模式。

一般解法:

上述代码中,AA 类和 BB 类有重复的方法,代码冗余度较大,可以考虑将两个类中重复的方法抽取到一个父类(抽象类)中,不同的方法声明为抽象的,然后再去子类 AA 和 BB 中实现(重写)抽象方法。

看下面例子,直观地体会接口。

输出结果:

(可以将接口理解为一个特殊的类。类实现接口也可达到代码重用的目的) 接口就是给出一些没有实现的方法,封装到一起。到某个类要使用的时候,再根据具体情况把这些方法写出来。语法:

Jdk 7.0 及以前,接口里的所有方法都没有方法体,即:都是抽象方法。

Jdk 8.0 及以后,接口里可以有静态方法,默认方法,即:接口中可以有方法的具体实现。

在接口中,抽象方法可以省略 abstract 关键字。

如果一个类 implements 接口,就要将该接口中的所有抽象方法都实现。

对初学者讲,理解接口的概念不算太难,难的是不知道什么时候使用接口,下面列举几个应用场景:

(1)现在要制造战斗机、直升机。专家只需把飞机需要的功能 / 规格定下来,然后让别的人具体实现即可。

(2)一个项目经理管理3个程序员,分别实现 MySql、Oracle、DB2 数据库的 connect、close。项目经理写好接口,程序员根据需求去具体实现接口中的方法。这样就能保证3个程序员写的方法有相同的方法名,便于管理。(下面以MySql、Oracle为例)

输出结果:

【例】

接口可以看作对单继承机制的补充。

下面代码中 LittleMonkey 只能拥有父类的功能:

下面代码 LittleMonkey 除了可以拥有父类的功能,还可以拥有接口中的功能:

输出结果:

小结:当子类继承了父类,就自动的拥有父类的功能。如果子类需要扩展功能,就可以通过实现接口的方式扩展。可以理解为:“实现接口” 是对 Java 单继承机制的一种补充。

接口和继承解决的问题不同 继承的价值主要在于:解决代码的复用性和可维护性。 接口的价值主要在于:设计好各种规范(方法),让其它类去实现这些方法,不同的类实现方式不同。

接口比继承更加灵活 接口比继承更加灵话,继承要满足 is-a 的关系(人是一种动物),而接口只需满足like-a的关系(人像鸟一样飞翔)。 接口在一定程度上实现代码解耦[即:接口规范性+动态绑定机制](集合那里再讲)

接口引用可以指向实现了接口的类的对象。

接口存在多态传递现象。

上例中,IG 接口继承了 IH 接口,Teacher类实现了 IG 接口,就相当于 Teacher 类也实现了 IH 接口。所以,若 IH 接口中有抽象方法,Teacher 类也应该去实现。

练习:看下面代码有没有错误,有就改正。

内部类: 一个类的内部又完整地嵌套了另一个类结构。被嵌套的类称为内部类(inner class),嵌套其他类的类称为外部类(outer class)。内部类是类的第五大成员。【类的五大成员:属性、方法、构造器、代码块、内部类】

内部类的特点: 可以直接访问私有属性,并体现类与类之间的包含关系。 注意:内部类是学习的难点,同时也是重点,后面看底层源码时,有大量的内部类。

基本语法:

内部类的分类:

代码执行流程:

匿名内部类: 匿名内部类定义在外部类的局部位置(比如方法中),并且没有类名。它的本质是一个类,同时还是一个对象。

匿名内部类的基本语法:

输出结果:

输出结果:

输出结果:

输出结果:

传统方法:类实现接口 ➡ 创建对象 ➡ 传参

匿名内部类做实参直接传递:

练习: 有一个铃声接口Bell,里面有ring方法, 有一个手机类 Cellphone,具有闹钟功能 alarmclock,参数是 Bell 类型 测试手机类的闹钟功能,通过匿名内部类(对象)作为参数,打印:懒猪起床了 再传入另一个匿名内部类(对象),打印:小伙伴上课了

输出结果:

说明:成员内部类定义在外部类的成员位置,并且没有static修饰

说明:静态内部类定义在外部类的成员位置,并且有static修饰。

输出结果:

【例1】要求: 计算器接口具有 work 方法,功能为运算。 有一个手机类 Cellphone,定义方法 testWork 测试计算功能,并调用计算接口的 work 方法。 要求调用 Cellphone 对象的 testWork 方法,用上匿名内部类。

【例2】要求: 有一个交通工具接口类 Vehicles,有 work 接口; 有 Horse 类和 Boat 类分别实现 Vehicles; 创建交通工具工厂类,有两个方法分别获得交通工具 Horse 和 Boat; 有 Person 类,有 name 和 vehicles 属性,在构造器中为两个属性赋值; 实例化 Person 对象 ”唐僧“,要求一般情况下用 Horse 作为交通工具,遇到大河时用 Boat作为交通工具。

输出结果:

【例3】要求: 有一个Car类,有属性temperature(温度), 车内有Air(空调)类,有吹风的功能flow,Air会监视车内的温度, 如果温度超过40°就吹冷气。如果温度低于0°就吹暖气。 在关闭空调的状态下,实例化具有不同温度的Car对象,并调用空调的flow方法,测试空调吹的风是否正确。

输出结果:

【例4】要求: 创建一个Color枚举类,有RED, BLUE, BLACK, YELLOW, GREEN这五个枚举值 / 对象; Color有三个属性redValue,greenValue,blueValue; 创建构造方法,参数包括这三个属性,每个枚举值都要给这三个属性赋值,三个属性对应的值分别是:red: 255,0,0 blue: 0,0,255 black: 0,0,0 yellow:255,255,0 green:0,255,0; 定义接口,里面有方法show,要求Color实现该接口,show方法中显示三个属性的值; 将枚举对象在switch语句中匹配使用。swtch的可以是枚举对象。

输出结果:

前不久朋友圈被一条新闻刷屏了,说北京几个小学生用文心快码搭了个编程学习社区,搞得有模有样,还能讨论问题、分享项目。说实话,第一反应是懵的,现在小孩都这么猛了?我当年学个循环语句差点把键盘抠烂。这工具真这么神?添加图片注释,不超过 140 字(可选) 好奇心压不住,正好手上有个兼职的小活,想着要不试试看,用文心快码复刻个类似的东西,就当是检验一下这“全民编程”到底是不是噱头。我这个半吊子前端,主业其

java面向对象编程第一章:封装和继承第一节:封装1.1 提高程序的安全性。1.2 将公共的一些属性、方法,封装到一个通用类,这也是封装的提现。冰箱,彩电,电脑代码的封装:将属性设置为私有,然后通过共有的已经设定好的方法暴露给使用者,让使用者按照自己设定好的方式访问该属性,比如性别和年龄public class Dog { String name; private String

基本知识回顾线程是比进程更小的能独立运行的基本单位,它是进程的一部分,一个进程可以拥有多个线程,但至少要有一个线程,即主执行线程(Java 的 main 方法)。我们既可以编写单线程应用,也可以编写多线程应用。一个进程中的多个线程可以并发(同时)执行,在一些执行时间长、需要等待的任务上(例如:文件读写和网络传输等),多线程就比较有用了。怎么理解多线程呢?来两个例子:进程就是一个工厂,一个线

# 少儿编程 Python 教程入门指南在今天的数字时代,学习编程已经变得愈发重要。而 Python 作为一门简单易学的编程语言,特别适合初学者,尤其是少儿编程。本文将帮助你从零开始,逐步学习如何实现一个少儿编程的 Python 教程。我们将通过明确的步骤,一段代码示例和相关注释,逐步递进,最终实现一个简单的 Python 程序。## 整体流程为帮助你理解整个流程,首先我们先列出每个步

# 美国少儿编程Java:开启编程之门的钥匙## 引言编程已经成为现代社会的一项重要技能。随着科技的迅猛发展,越来越多的国家和地区开始重视编程教育,尤其是在美国的教育体系中,少儿编程正逐渐成为必修课。Java,因为其强大的功能和易学的特性,成为了少儿编程的重要语言之一。本文将为大家介绍儿童学习Java编程所需的基础知识,并通过简单的代码示例和旅行图,帮助小朋友们更好地理解编程的乐趣。#

# Java少儿编程教学## 前言随着计算机科学的快速发展,编程已成为一项非常重要的技能。而对于少年儿童来说,学习编程不仅可以培养他们的逻辑思维和创造力,还能够提高他们解决问题的能力。在众多编程语言中,Java是一种非常适合少儿学习的语言。本文将介绍如何使用Java进行少儿编程教学,并结合代码示例进行讲解。## Java的优势Java是一种面向对象的编程语言,它具有以下优势:1

# Java开发少儿编程## 什么是少儿编程少儿编程是指针对儿童开设的编程课程,旨在通过专门设计的教学内容和方法,培养孩子们的计算思维、创新能力和问题解决能力。通过编程学习,孩子们可以培养逻辑思维、动手能力和团队协作能力,提前接触科技,为未来的IT技术发展打下基础。## 为什么选择Java开发少儿编程Java是一种十分流行的编程语言,被广泛应用于企业级开发、移动应用开发和游戏开发等

# Java 少儿编程讲师面试试讲## 引言随着科技的飞速发展,编程已成为每个人必备的技能之一。越来越多的教育机构开始推出少儿编程课程,使孩子们从小就能够接触到编程的世界。而 Java 作为一种广泛使用的编程语言,非常适合用于教学。在这篇文章中,我们将探讨 Java 程序设计的基本概念,并通过简单的代码示例和表格,帮助大家更好地理解这些概念。## Java 编程基础### 什么是

# Python少儿编程老师面试实现指南在当今互联网时代,编程教育极其重要,特别是对儿童的编程启蒙,成为越来越多家长关注的焦点。对于一名初入行业的小白,在实现“Python少儿编程老师面试”的项目时,确实可能会有些不知所措。本文将系统地指导你如何一步步实现这一功能。## 整体流程首先,我们需要清楚整个项目的实施步骤。以下是项目的基本流程:```mermaidflowchart T

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~本套Java面试题大全,全的不能再全,哈哈~博主已将以下这些面试题整理成了一个Java面试手册,是PDF版的。关注博主的微信:Java团长,然后回复“面试手册”即可获取~一、Java基础知识面试题1、Java概述①. 何为编程编程就是让计算机为解决某个问题而使用某种程序设计语言编写

Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。面向过程编程和面向对象编程面向过程编程:通过一个函数去完成一件事情,而且这件事情完成之后,不会留下任何的遗产。或者理解为:一次性。面向对象编程:在完成一件事情时,会将事情中的实体对象抽象出来,形成「类」的概念,事情的完成是通过类的对象

目录一、前言二、什么是ScratchJr三、ScratchJr的安装1、iPad上安装2、安卓Pad上安装3、查看官方例子四、ScratchJr的主操作界面介绍五、ScratchJr的绘图区域六、惯例一、前言前面我们已经介绍过了什么是儿童编程,儿童编程的优劣,为什么需要学习儿童编程,以及ScratchJr和Scratch的基本介绍。本章我们将开始正式进入ScratchJr的学习。二、什么是Scra

文章目录Java基础九、面向对象编程(高级)类变量和类方法类变量的内存布局类变量基本介绍类方法基本介绍理解main语法说明代码块单例设计模式什么是单例模式饿汉式懒汉式final关键字抽象类抽象类最佳实践 --- 模板设计模式接口基本介绍接口应用场景注意事项和实现细节实现接口和继承类接口的多态特性内部类基本介绍局部内部类匿名内部类成员内部类静态内部类 Java基础九、面向对象编程(高级)类变量和类

Java基础编程之Java语言概述知识点1:Java学习框架学习脉络图Java基础分层内容说明第一部分:任何一个编程语言都会涉及到的内容。比如:变量、运算符、流程控制(循环、条件判断)、数组、...第二部分:(重点中的重点)Java面向对象编程第三部分:Java API的应用:多线程、集合、IO、网络通信、反射、....附加部分:项目(① 项目中不包含新的知识点。② 业务逻辑更复杂 )知识

1995年5月,当时大名鼎鼎的Sun公司(现属于Oracle)正式发布了Java,作为构建现代企业Web应用后端的最常用编程语言之一,Java是所有程序员必须了解并掌握的一门编程语言。Java是第一个真正意义上面向对象的编程语言,具有简单性、面向对象、分布式、安全性、平台独立与可移植性、多线程、动态性等特点。Java的应用场景包括移动(Android)应用、金融行业应用服务器程序、网站、嵌入式领域

编程基础与二进制第1章 编程基础所谓程序,基本上就是告诉计算机要操作的数据和执行的指令序列,即对什么数据做什么操作。1.1 数据类型和变量数据类型用于对数据归类,以便于理解和操作。对 Java 语言而言,有如下基本数据类型。 整数类型:有 4 种整型 byte/short/int/long,分别有不同的取值范围;小数类型:有两种类型 foat/double,有不同的取值范围和精度;字符类型:

系统介绍:摘   要: 网络化时代给我们提供了许多便利的同时也对我们提出了新的要求,这是一个知识爆炸的社会,信息量的增多,信息流通速度的加快,让我们越发觉得时间压力的增大,传统的纸张登记信息的形式已经不能适应这个时代的日新月异的变化了,生活到处都充满新科技气息,信息技术让我们的时代变得越发忙碌,越讲究高效率进行任务办公处理。以前不实用的相关记载也将面临退世,取代它的

系统程序文件列表系统的选题背景和意义选题背景:在数字化时代,编程已经成为了一项基础而重要的技能。如同数学和阅读能力一样,编程能力的培养对于孩子们的成长和未来的职业发展具有不可忽视的作用。随着科技的迅猛发展,计算机和互联网已经深入人类生活的每一个角落,从智能家居到机器人工程,从数据分析到人工智能,无一不与编程技术紧密相关。因此,从小培养儿童的编程思维和问题解决能力,不仅有助于他们适应未来社会的需求,

mybatis 一级缓存mybatis 默认开启一级缓存 一级缓存是SqlSession级别的缓存,在操作数据库时需要构造SqlSession对象,在对象中有一个(内存区域)数据结构(hashmap)用于存储数据,不同SqlSession之间缓存的数据互不影响 注:在常见的项目当中(mybatis+spring)spring 对mybatis的sqlserssion 的使用是由 template控

使用Tailwind CSS Tailwind CSS 简介是“用于快速用户界面开发的原子化 CSS 框架。” Tailwind CSS 是一个功能优先的实用优先(utility-first)CSS框架,它通过提供大量原子化的工具类(utility classes),让开发者直接在HTML中构建自定 ...

Java 应用开发的同学都知道,项目上线后,日志的可视化查询、接口的性能监控、 JVM 的可视化监控是一件非常重要的事。市面上成熟方案一般是采用 ELK/EFK 实现日志可视化,采用 Actuator + Prometheus + Grafana 实现 JVM 监控。这两套都是非常优秀的解决方案,不过对于很多开发者来说,这中间存在大量的繁琐的配置过程。而对于大多数中小型企业来说,很多都是一个简单的单体项目,并不想要多余的运维和部署成本!而智能应用监控。

进行一个圆锥曲线的笔记的整理。 由于现在不太成体系所以先散着记笔记。 一.圆锥曲线的介绍 1.椭圆、双曲线、抛物线定义 啊?不会有人知道椭圆、双曲线、抛物线定义来看这个吧? 椭圆 \(\frac{x^2}{a^2}+\frac{y^2}{b^2}=1\) 双曲线 \(\frac{x^2}{a^2}- ...

从开始系统的学习web前端技术(HTML5)到现在已经三周了。这三周里,主要是各种标签和CSS+div布局,在编写代码过程中遇到过很多问题,刚开始是不知道怎么写,后来随着学习的慢慢推进,纠错成为了最大难题。前端语言不同于其他编程语言,前端语言是标记语言,遇到错误时不能像其他语言编译器那样提示错误,并指出错误原因。所以,编写html需要自己去检查自己的代码。总结了一下,主要有下面几点错误令人头疼:1

THE END
0.启迪幼儿编程思维少儿趣味编程孩子学编程入门教程童趣正版 5岁开始学编程 ScratchJr语言 多款趣味编程游戏 启迪幼儿编程思维少儿趣味编程 孩子学编程入门教程 可开发票,保证正版¥41.25 (7.12折) 降价通知 定价¥58.00 暂无评分 0人评分精彩评分送积分 作者 桥爪香织 谷内正裕 查看作品 出版 人民邮电出版社,2020年09月 查看作品 分类 图书>青春文学>jvzq<84rtqjve}3o0fgoimfpi0ipo86467<82;9230nuou
1.15岁儿童编程入门教程理论实操零基础编程教材编游戏学计算机程序设少儿启蒙编程全4册给中小学生的编程启蒙书籍5-15岁儿童编程入门教程理论实操零基础编程教材编游戏学计算机程序设计编程书籍 收藏 该商品已下柜,欢迎挑选其他商品! 相似商品推荐 加载中,请稍候jvzquC41kvkn0si0eqs0396285?32<998;4ivvq
2.《儿童编程入门教程全4册写给孩子的编程思维启蒙适合5岁以上当当映玥星图书专营店在线销售正版《儿童编程入门教程全4册写给孩子的编程思维启蒙适合5岁以上》。最新《儿童编程入门教程全4册写给孩子的编程思维启蒙适合5岁以上》简介、书评、试读、价格、图片等相关信息,尽在DangDang.com,网购《儿童编程入门教程全4册写给孩子的编程jvzq<84rtqjve}3fcpmecwl0eqs03:>36;<39;50jvsm
3.基础教程从入门到精通小学生c++趣味入门编程课程少儿编程基础《小天才学Python编程基础+教学指导 全2册python基础教程从入门到精通 小学生c++趣味入门编程课程少儿编程基础入门自学书籍 python》,作者:小天才学Python编程基础+教学指导 全2册python基础教程从入门到精通 小学生c++趣味入门编程课程少儿编程基础入门自学书籍 pythonAl jvzq<84rtqjve}3o0fgoimfpi0ipo86399816=7;;0nuou
4.我的第一套编程书全8册scratch3.0版小学生5我的第一套编程书全8册scratch3.0版小学生5-15岁儿童编程入门教程少儿趣味启蒙创意零基础编程教材编游戏学英语计算机程序设计书疯狂动物城精装绘本到手9.8元,点击抢购>> ¥125.00 (5.79折) 降价通知 定价¥216.00 暂无评分 0人评分精彩评分送积分 jvzq<84rtqjve}3o0fgoimfpi0ipo8635;947=7870nuou