首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

组合

什么是组合 组合就是一个的对象具备某一个属性,该属性的值是指向另外外一个的对象 为什么用组合 组合是用来解决之间代码冗余的问题 首先我们先写一个简单版的选课系统 class OldboyPeople...': 19, 'sex': 'male', 'stu_id': 1, 'score': 100} 如上设计了一个选课系统,但是这个选课系统在未来一定是要修改、扩展的,因此我们需要修改上述的代码 如何用组合...需求:假如我们需要给学生增添课程属性,但是又不是所有的老男孩学生一进学校就有课程属性,课程属性是学生来老男孩后选出来的,也就是说课程需要后期学生们添加进去的 实现思路:如果我们直接在学生添加课程属性...,那么学生刚被定义就需要添加课程属性,这就不符合我们的要求,因此我们可以使用组合能让学生未来添加课程属性 class Course: def __init__(self, name, period...# 创造学生与老师 stu1 = OldboyStudent('tank', 19, 'male', 1) tea1 = OldboyTeacher('nick', 18, 'male', 10) 组合

35810

组合

组合构造函数一般的定义形式如下: 名::名(形参表):内嵌对象1(形参表),内嵌对象2(形参表)...{ //初始化函数体 } 内嵌对象的初始化使用了 初始化列表 来完成——内嵌对象必须使用初始化列表来实现初始化...这个时候,构造函数的调用顺序如下所示: 调用内嵌对象的构造函数,调用顺序按照内嵌对象在组合的定义中出现的顺序。...析构函数的调用执行顺序与构造函数正好相反 ,析构函数的函数体被执行完毕之后,内嵌对象的析构函数开始被一一执行——它们的调用顺序,跟它们在组合的定义的顺序正好相反。...如果我们想要为组合编写复制构造函数的话,那么我们需要为内嵌对象成员的复制构造函数传递参数。...如果我们想要为组合编写复制构造函数的话,那么我们需要为内嵌对象成员的复制构造函数传递参数。

20410
您找到你想要的搜索结果了吗?
是的
没有找到

Java--和对象之组合和继承

: 衍生的构造器会自动调用基础的无参构造器进行初始化;但如果你为基础写了带参构造器而没有写无参构造器,又没有在衍生的构造器显式调用基础的带参构造器,就会出错。...衍生的构造器要首先设置对基础的构造器的调用,这意味着在它之前不能出现任何东西。这种设计能够保证基础总是能在衍生调用它之前得到正确的初始化。...组合 or 继承? 其实这涉及到设计模式的问题----组合模式。如果一个问题可以描述成整体和部分的关系,组合模式是最合适的,比如上面的汽车和车门、轮子、发动机之间的关系。...而继承则适用于属于关系,如上面的动物类和狗、猫之间的关系。 因为组合有着极大的简洁性和灵活性,所以一般情况优先考虑利用组合。有一种情况必须使用继承--上溯造型。...然而,由于它禁止了继承,所以一个 final 的所有方法都默认为 final。

1K80

java

2.–具有共同性质的一组事物的群体。 人类。 在java中用来描述具有共同性质的一组事物的自定义的复合数据类型—。...复合数据类型的本质—【根据自己的需求制作自己需要的数据类型的模式/规则/公式】 4.2.如何编写一个Java?...{ } 4.3.Java可以编写什么?...基本属性——变量 基本功能—–方法 变量–是用来在描述事物的基本属性 方法–是用来在描述事物的基本功能 4.4.Java变量的分类及其基本特征?...在同一个成员变量与某一个方法的局部变量的名称相同,这是我们在方法中使用这个成员变量的时候,得到的结果是局部变量的值,此时就是方法的局部变量将成员变量的值隐藏了,这就是成员变量的隐藏。

1.2K30

JavaDate与Calendar

JavaDate与Calendar Java中有两个与时间相关的常用:Date与Calendar,开始在做题目的时候一无所知,通过查阅网上的资料有了一些基本的了解....(其实也可以查看Java的API,这是十分有效的学习方法,以后要加强这种意识). 例题 java.util 包由一个 GregorianCalendar,可以使用它获得某个日期的年、月、日。...显示当前的年月日和按照某一基准计算指定日期都可以直接使用Java已有的Calendar,具体资料可以参考Java Calendar,包含了Calendar的许多属性与方法,主要的有:Calendar...import java.util.Calendar; public class ShowDate { public void printCurrentDate(){...的有许多重要、常用,需要经常查阅熟记用法,并在代码多多运用,这是学好Java的十分重要的一步.

60720

Java嵌套用法

Java,可以在另一个定义一个。这些称为嵌套。它们使您能够对只在一个地方使用的进行逻辑分组。因此,这增加了封装的使用,并创建了更具可读性和可维护性的代码。...嵌套的作用域由其封闭的作用域限定。因此,在上面的例子NestedClass并不独立于的 OuterClass外部类而存在。 嵌套可以访问嵌套的成员,包括私有成员。...nestedObject = new OuterClass.StaticNestedClass(); // Java program to demonstrate accessing //...然后,使用以下语法在外部对象创建内部对象: OuterClass.InnerClass innerObject = outerObject.new InnerClass(); There are two...special kinds of inner classes : // Java program to demonstrate accessing // a inner class // outer

2.1K40

javaString学习

javaString的相关操作如下: (1)初始化:例如,String s = “abc”; (2)length:返回字符串的长度。...(4); (4)字符串连接     1)concat     2)+ 注意:当使用+时不仅可以连接字符串,也可以连接其他类型(原因参加博客另一篇文章java的toString方法),但至少有一个参与连接的内容是字符串类型...    具体区别参加另一篇博客(java的==和equals)     另外还有一个方法equalsIgnoreCase,该方法的作用是忽略大小写比较两个字符串的内容是否相同 (6)compareTo...String s = "12,3,4,567"; String []c=s.split(","); 注意split是以字符串进行分割的(里面是双引号)而不是字符 如果字符串在内部存在和间隔字符串相同的内容时将拆除空字符串...(8)substring:该方法的作用是取字符串的“子串”。

69670

java的Atomic

java的Atomic 问题背景 在多线程环境,我们最常遇到的问题就是变量的值进行同步。因为变量需要在多线程中进行共享,所以我们必须需要采用一定的同步机制来进行控制。...通过之前的文章,我们知道可以采用Lock的机制,当然也包括今天我们讲的Atomic。 下面我们从两种方式来分别介绍。 Lock 在之前的文章,我们也讲了同步的问题,我们再回顾一下。...Java提供了很多Atomic,最常用的包括AtomicInteger, AtomicLong, AtomicBoolean, 和 AtomicReference....其中的主要方法: get() – 直接主内存读取变量的值,类似于volatile变量。 set() – 将变量写回主内存。类似于volatile变量。 lazySet() – 延迟写回主内存。...return; } } } } 本文的例子可以参考https://github.com/ddean2009/learn-java-concurrency

60320

java的日期

java的日期 一、日期 1.1 第一代日期 1.1.1 Date 1.1.2 SimpleDateFormat 1.2 第二代日期Calendar 1.3 第三代日期 1.3.1...LocalDate、LocalTime、LocalDateTime 1.3.2 Instant 1.3.3 DateTimeFormatter 一、日期 在程序的开发我们经常会遇到日期类型的操作...在最初的版本下,java.lang包的System.currentTimeMillis();可以获取当前时间与协调时间(UTC)1970年1月1日午夜之间的时间差(以毫秒为单位测量)。...1.3 第三代日期 java8引入的java.time纠正了过去的缺陷,这就是第三代日期API。 java8吸收了Joda-Time的精华,以一个新的开始为Java创建优秀的API。...第二种通用模型是面向计算机的,在此模型,时间线的一个点表示一个整数,这有利于计算机处理。在UNIX这个数从1970年开始,以秒为单位;同样在Java也是从1970年开始的,但以毫秒为单位。

3.6K20

Java的概念

Java的概念 是一个模板,它描述一对象的行为和状态。 对象:对象是的一个实例,有状态和行为。...例如,一条狗是一个对象,它的状 态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等 Java 定义一个的基本格式 [修饰符] class 名{ 0到多个构造器 0到多个成员变量...一个java源文件(也就是文件后缀名为.java的文件)可以写多个,但是里面只能有一个用public修饰的class, 构造器 构造器也叫构造方法或者构造函数,构造器与名相同,没有返回值,连void...成员变量 成员变量:成员变量是定义在,方法体之外的变量。这种变量在创建对象的时候 实例化。成员变量可以被中方法、构造方法和特定的语句块访问。...方法是解决一问题的步骤的有序组合 方法包含于或对象 方法在程序中被创建,在其他地方被引用 上面是一个无参的返回值为空的方法,参数可以加,返回值也可以是int型也可以是别的类型。

46640
领券