高三化学基本概念类(附答案)

高三化学基本概念类(附答案)
高三化学基本概念类(附答案)

基本概念类

1、X和Y属短周期元素,X原子的最外层电子数是次外层电子数的一半,Y位于X的前

一周期,且最外层只有一个电子,则X和Y形成的化合物的化学式可表示为

A、XY

B、XY2

C、XY3

D、X2Y3

2、下列叙述正确的是

A、同主族金属的原子半径越大熔点越高

B、稀有气体原子序数越大沸点越高

C、分子间作用力越弱分子晶体的熔点越低

D、同周期元素的原子半径越小越易失去电子

3、关于晶体的下列说法正确的是

A.在晶体中只要有阴离子就一定有阳离子

B.在晶体中只要有阳离子就一定有阴离子

C.原子晶体的熔点一定比金属晶体的高

D.分子晶体的熔点一定比金属晶体的低

4、x、y、z为短周期元素,这些元素原子的最外层电子数分别是1、4、6.则由这三种元素

组成的化合物的化学式不可能是

A.XYZ

B.X2YZ

C.X2YZ2

D.X2YZ3

5、下列化学式既能表示物质的组成,又表示物质分子式的是

A.NH4NO3

B.SiO2 C C6H5NO2 D Cu

6、下列化合物中阳离子半径与阴离于半径比值最小的是

A. NaF B MgI2 C. BaI2 D KBr

7、下列物质属于原子晶体的化合物是

A 金刚石 B刚玉C二氧化硅 D干冰

8、下列化合物中阴离子半径和阳离子半径之比最大的是

A.LiI B.NaBr C.KCl D.CsF

9、同温同压下两个容积相等的贮气瓶,一个装有C2H4,另一个装有C2H2和C2 H6的混合

气体,两瓶内的气体一定具有相同的

A.质量

B.原子总数

C.碳原子数

D.密度

10、下列说法中错误的是

A.原子及其离子的核外电子层数等于该元素所在的周期数

B.元素周期表中从IIIB族到IIB族10个纵行的元素都是金属元素

C.除氦外的稀有气体原子的最外层电子数都是8

D.同一元素的各种同位素的物理性质化学性质均相同

11.两种元素原子的核外电子层数之比与最外层电子数之比相等,则在周期表的前10号元素中,满足上述关系的元素共有

A 1对

B 2对

C 3对

D 4对

12、周期表中16号元素和4号元素的原子相比较,前者的下列数据是后者的4倍的是

A.电子数B.最外层电子数C.电子层数D.次外层电子数

13、随着人们生活节奏的加快,方便的小包装食品已被广泛接受。为了延长食品的保质期,

防止食品受潮及富脂食品氧化变质,在包装袋中应放入的化学物质是

A 无水硫酸铜、蔗糖B硅胶、硫酸亚铁

C 食盐、硫酸亚铁

D 生石灰、食盐

14、下列变化规律中正确的是

A、H2S、HCl、PH3热稳定性由弱到强

B.质的量浓度相等的NaCl、MgCl2、AlCl3三种溶液的pH值由小到大

C 等质量的甲烷、乙烯、乙炔充分燃烧,所耗用氧气的量由多到少

OH

D、CH3CH2OH、、CH3COOH的酸性由弱到强

15

A.可能是纯净物也可能是混合物B.可能是单质也可能是化合物

C.一定是纯净物D.一定是一种单质

16、下列每组物质发生状态变化所克服的微粒间的相互作用属于同种类型的是

A.食盐和蔗糖熔化

B.钠和硫熔化

C.碘和干冰升华

D.二氧化硅和氧化钠熔化

17、甲、乙是周期表中同一主族的两种元素,若甲的原子序数为x,则乙的原子序数不可

..能.是

A.x+2

B.x+4

C.x+8

D.x+18

18、下列关于胶体的叙述不正确的是

A布朗运动是胶体徽粒特有的运动方式,可以据此把胶体和溶液、悬浊液区别开来。

B光线透过胶体时,毅然体发生丁达尔现象

C用渗析的方法净化胶体时,使用的半透膜只能让较小的分子、离子通过

D胶体微粒且有较大的表面积,能吸附阳离子或阴离子,故在电场作用下会产生电泳现象。

19、下列物质属于分子晶体的化合物是

A 石英

B 硫磺C干冰 D 食盐

20、氯化铁溶液与氢氧化铁胶体具有的共同性质是

A 分散质颗粒直径都在l~100nm之间

B 能透过半透膜

C加热蒸干、灼烧后都有氧化铁生成 D 呈红褐色

21、已知短周期元素的离子。a A2+、b B+、c C3-、d D-都具有相同的电子层结构,则下列叙

述正确的是

A 原子半径A>B>D>C

B 原子序数d>c>b>a

C 离子半径C>D>B>A

D 单质的还原性A>B>D>C

22、以下说法正确的是

A 纳米材料是指一种称为“纳米”的新物质制成的材料

B 绿色食品是指不含任何化学物质的食品

C 生物固氮是指植物通过叶面直接吸收空气中的氮气

D 光导纤维是以二氧化硅为主要原料制成的

24、C 60与现代足球有很相似的结构,它与石墨互为

A 同位素

B 同素异形体

C 同分异构体

D 同系物

25、有人认为在元素周期表中,位于ⅠA 族的氢元素,也可以放在ⅦA 族,下列物质能支

持这种观点的是

A HF

B H 3O +

C NaH

D H 2O 2

26、在下列有关晶体的叙述中错误的是

A 离子晶体中,一定存在离子键

B 原子晶体中,只存在共价键

C 金属晶体的熔沸点均很高

D 稀有气体的原子能形成分子晶体

27、沼气是一种能源,它的主要成分是CH 4。0.5molCH 4完全燃烧生成CO 2和H 2O 时,放

出445kJ 热量,则下列热化学方程式中正确的是

A 2CH 4(g )+4O 2(g )=2CO 2(g )+4H 2O (l ) ΔH =+890kJ ·mol -1

B CH 4(g )+2O 2(g )=CO 2(g )+2H 2O (l ) ΔH =+890kJ ·mol -1

C CH 4(g )+4O 2(g )=CO 2(g )+2H 2O (l ) ΔH =-890kJ ·mol -1

D 1/2CH 4(g )+O 2(g )=1/2CO 2(g )+H 2O (l ) ΔH =-890kJ ·mol -1

28、人类探测月球发现,在月球的土壤中含有较丰富的质量数为3的氦,它可以作为未来

核聚变的重要原料之一。氦的该种同位素应表示为

A .He 43

B .He 32

C .He 42

D .He 3

3 29、.在两个容积相同的容器中,一个盛有HCl 气体,另一个盛有H 2和Cl 2的混合气体。

在同 温同压下,两容器内的气体一定具有相同的

A .原子数

B .密度

C .质量

D .质子数

30、根据中学化学教材所附元素周期表判断,下列叙述不正确...

的是 A .K 层电子为奇数的所有元素所在族的序数与该元素原子的K 层电子数相等

B .L 层电子为奇数的所有元素所在族的序数与该元素原子的L 层电子数相等

C .L 层电子为偶数的所有主族元素所在族的序数与该元素原子的L 层电子数相等

D .M 层电子为奇数的所有主族元素所在族的序数与该元素原子的M 层电子数相等

31、X 元素的阳离子和Y 元素的阴离子具有相同的核外电子结构,下列叙述正确的是

A 原子序数X <Y

B 原子半径X <Y

C 离子半径X >Y

D 原子最外层电子数X <Y

32、短周期的三种元素分别为X 、Y 和Z ,已知X 元素的原子最外层只有一个电子,Y 元

素原子的M 电子层上的电子数是它的K 层和L 层电子总数的一半,Z 元素原子的L 电子层上的电子数比Y 元素原子的L 电子层上电子数少2个,则这三种元素所组成的化合物的分子式不可能是....

A X 2YZ 4

B XYZ 3

C X 3YZ 4

D X 4Y 2Z 7

33、下列说法正确的是

A 非金属元素R所形成的含氧酸盐(Ma RO b )中的R元素必定呈现正价

B 只有非金属能形成含氧酸或含氧酸盐

C 除稀有气体外的非金属元素都能生成不同价态的含氧酸

D 非金属的最高价含氧酸都具有强氧化性

c#抽象类的概念

C#抽象类和抽象方法 如果一个类不与具体的事物相联系,而只是表达一种抽象的概念,仅仅是作为其派生类的一个基类,这样的类就是抽象类,在抽象类中声明方法时,如果加上abstract时就是抽象方法1.抽象类概述及声明 抽象类与非抽象类的主要区别: ·抽象类不能直接被实例化 ·抽象类中可以包含抽象成员,但非抽象类中不可以 ·抽象类不能被密封 举个小例子 public abstract class oneClass { public int i; public void denylau() { } } 2.抽象方法概述及声明 声明抽象方法时需注意:·抽象方法必须声明在抽象类中·声明抽象方法时,不能使用virtual、static、private修饰符。 在抽象类中抽象方法不提供实现。 如: public abstract class myTestClass() { public abstract void method(); } 3.抽象类与抽象方法的使用 直接举例子,讲解例子喽! using System; using System.Collections.Generic; using System.Text; namespace _ { public abstract class myClass { private string id = ""; private string name = ""; ///

/// 编号属性及实现 ///

public string ID { get { return id; } set { id = value; } } /// /// 姓名属性及实现 /// public string Name { get { return name; } set { name = value; } } /// /// 抽象方法,用来输出信息 /// public abstract void ShowInfo(); } public class DriveClass:myClass //继承抽象类{ /// /// 重写抽象类中输出信息的方法 /// public override void ShowInfo() { Console.WriteLine(ID + " " + Name); } } class Program {

接口和抽象类的区别

.Net提供了接口,这个不同于Class或者Struct的类型定义。接口有些情况,看似和抽象类一样,因此有些人认为在.Net可以完全用接口来替换抽象类。其实不然,接口和抽象类各有长处和缺陷,因此往往在应用当中,两者要结合来使用,从而互补长短。 接下来先说说抽象类和接口的区别。 区别一,两者表达的概念不一样。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于“是”的关系;而接口是定义行为规范,因此对于实现接口的子类来说,相对于接口来说,是“行为需要按照接口来完成”。这些听起来有些虚,举个例子。例如,狗是对于所有狗类动物的统称,京哈是狗,牧羊犬是狗,那么狗的一般特性,都会在京哈,牧羊犬中找到,那么狗相对于京哈和牧羊犬来说,就属于这类事物的抽象类型;而对于“叫”这个动作来说,狗可以叫,鸟也可以叫。很明显,前者相当于所说的是抽象类,而后者指的就是接口。 区别二,抽象类在定义类型方法的时候,可以给出方法的实现部分,也可以不给出;而对于接口来说,其中所定义的方法都不能给出实现部分。 例如: public abstract class AbsTest { public virtual void Test() { Debug.WriteLine( "Test" ); } public abstract void NewTest(); } public interface ITest {

void Test(); void NewTest(); } 区别三,继承类对于两者所涉及方法的实现是不同的。继承类对于抽象类所定义的抽象方法,可以不用重写,也就是说,可以延用抽象类的方法;而对于接口类所定义的方法或者属性来说,在继承类中必须要给出相应的方法和属性实现。 区别四,在抽象类中,新增一个方法的话,继承类中可以不用作任何处理;而对于接口来说,则需要修改继承类,提供新定义的方法。 知道了两者的区别,再来说说,接口相对于抽象类的优势。 好处一,接口不光可以作用于引用类型,也可以作用于值类型。而抽象类来说,只能作用于引用类型。 好处二,.Net的类型继承只能是单继承的,也就是说一个类型只能继承一个类型,而可以继承多个接口。其实,我对于这一点也比较赞同,多继承会使继承树变的混乱。 好处三,由于接口只是定义属性和方法,而与真正实现的类型没有太大的关系,因此接口可以被多个类型重用。相对于此,抽象类与继承类的关系更紧密些。 好处四,通过接口,可以减少类型暴露的属性和方法,从而便于保护类型对象。当一个实现接口的类型,可能包含其他方法或者属性,但是方法返回的时候,可以返回接口对象,这样调用端,只能通过接口提供的方法或者属性,访问对象的相关元素,这样可以有效保护对象的其他元素。

1.2 面向对象的基本概念

1.2 面向对象的基本概念 本节着重介绍面向对象的基本概念,也对相应的面向对象的技术方法做些说明和解释。 面向对象方法学的基本原则 面向对象方法学认为:客观世界是由各种“对象”所组成的,任何事物都是对象,每一个对象都有自己的运动规律和内部状态,每一个对象都属于某个对象“类”,都是该对象类的一个元素。复杂的对象可以是由相对比较简单的各种对象以某种方式组成的。不同对象的相互作用就构成了我们要研究分析和构造的客观系统。 面向对象方法学认为:通过类比,发现对象间的相似性,即对象间的共同属性,这就是构成对象类的根据。 面向对象方法学认为:对于已分成类的各个对象,可以通过定义一组“方法”来说明该对象的功能,也即是:允许作用于该对象上的各种操作。对象间的相互联系是通过传递“消息”来完成的。 面向对象方法学比较自然地模拟了人类认识客观世界的方法。即应使描述问题的问题空间和解决问题的方法空间在结构上尽可能地一致。我们分析设计和实现一个系统的方法尽可能接近我们认识一个系统的方法。 1.2.1 对象、类、消息 面向对象技术是基于对象(object )概念的。下面介绍对象概念。 在现代汉语词典中,对象是行动或思考时作为目标的人或事物。 在思维科学中,对象是客观世界中具有可区分性的、能够唯一标识的逻辑单元。对象所代表的本体可能是一个物理存在,也可能是一个概念存在。 “面向对象”是计算机科学中的一个技术名词,具有其特定的技术含义。从面向对象的观点来看,现实世界是由各式各样独立的、异步的、并发的实体对象组成,每个对象都有各自的内部状态和运动规律,不同对象之间或某类对象之间的相互联系和作用,就构成了各式不同的系统。 面向对象方法是基于客观世界的对象模型化的软件开发方法。在面向对象程序设计中,所谓对象,就是一个属性(数据)集及其操作(行为)的封装体。作为计算机模拟真实世界的抽象,一个对象就是一个实际问题论域,一个物理的实体或逻辑的实体。在计算机程序中,可视为一个“基本程序模块”,因为它包含了数据结构和所提供的相关操作功能。 我们把客观世界的实体称之为问题空间的对象,任何事物都是对象。 我们用计算机解题是借助某种语言规定对计算机实体施加某种动作,以此动作的结果去映射解,我们把计算机实体称之解空间的对象。 在面向对象的程序设计中,“对象”是系统中的基本运行实体。即对象是具有特殊属性(数据)和行为方式(方法)的实体。 从动态的观点看,对象的操作就是对象的行为。问题空间对象的行为是极其丰富的,而解空间对象的行为是极其死板的。因此,只有借助于极其复杂的算法才能操纵解空间对象而得到解。面向对象语言提供了“对象”概念,这样,程序员就可以定义解空间对象。 从存储的角度来看,“对象”是一片私有存储,其中有数据也有方法。其它对象的方法

接口和抽象类习题-答案

一)选择题 1. 以下哪个接口的定义是正确的? A. interface B{ void print() { } ; } B. abstract interface B { void print() ; } C. ab stract interface B extends A1,A2 { abstract void print(){ }; } D. interface B { void print();} 2. 定义一个接口时,下列哪个关键字用不到? A. public B. extends C. interface D. class 3. 定义一个接口时,要使用如下哪个关键字? A. abstract B. final C. interface D. class 4. 在使用interface 声明一个接口时,只可以使用哪个修饰符修饰该接口。 A. private B. protected C. private 或者protected D. public 5. 下列类头定义中,错误的是

A. public x extends y B. public class x extends y C. class x extends y implements y1 D. class x 6. 下列类定义中,不正确的是? A. class x B. class x extends y C. class x implements y1,y2 D. public class x extends X1,X2 7. Java 中能实现多重继承功能的方式是? A. 接口 B侗步 C. 抽象类 D. 父类 8. 下列叙述正确的是? A. Java 中允许多重继承 B. Java 一个类只能实现一个接口 C. Java 中只能单重继承 D. Java 中一个类可以继承多个抽象类 (二)简答题 1) 接口中方法的修饰符都有哪些?属性的修饰符有哪些? 2) 接口的作用是什么?简述接口与类的关系。

接口和抽象类习题-答案

(一)选择题 1.以下哪个接口的定义是正确的? A.interface B{ void print() { } ; } B.abstract interface B { void print() ; } C.abstract interface B extends A1,A2 { abstract void print(){ }; } D.interface B { void print();} 2.定义一个接口时,下列哪个关键字用不到? A.public B.extends C.interface D.class 3.定义一个接口时,要使用如下哪个关键字? A.abstract B.final C.interface D.class 4.在使用interface声明一个接口时,只可以使用哪个修饰符修饰该接口。 A.private B.protected C.private或者protected D.public 5.下列类头定义中,错误的是? A.public x extends y B.public class x extends y C.class x extends y implements y1 D.class x 6.下列类定义中,不正确的是? A.class x B.class x extends y C.class x implements y1,y2 D.public class x extends X1,X2 7.Java中能实现多重继承功能的方式是? A.接口 B.同步 C.抽象类 D.父类 8.下列叙述正确的是? A.Java中允许多重继承 B.Java一个类只能实现一个接口 C.Java中只能单重继承 D.Java中一个类可以继承多个抽象类 (二)简答题

任务实训15--抽象方法和抽象类的应用

任务实训15 抽象方法和抽象类的应用 一、实训目的 1. 掌握Java抽象方法抽象类 二、实训内容 1、抽象方法、抽象类的应用 三、实训步骤 1.定义抽象类几何类、普通类圆类和矩形类,完成抽象类的继承和使用。 1)首先创建一个类家族,其中抽象类几何图形类GeometricObject为父类,圆类Circle和矩形类Rectangle为子类。几何图形类GeometricObject中定义保护型字符串变量color,表示图形的颜色;该类要具备构造方法和两个抽象方法findArea和findPerimeter,抽象方法findArea求图形面积,抽象方法findPerimeter求图形周长。 2)Circle类和Rectangle类是GeometricObject类的子类,其中应实现父类的抽象方法。 3)程序主方法中创建两个几何对象,一个圆和一个矩形,并用GeometricObject类的引用变量引用它们,调用抽象方法。 abstract class GeometricObject { protected String color; protected double weight; protected GeometricObject(String color, double weight) { this.color = color; this.weight = weight; } public abstract double findArea(); public abstract double findPerimeter(); } class Circle extends GeometricObject { protected double radius;

Java中的abstract方法和abstract类的问题

Java中的abstract方法和abstract类的问题 当知道一个类的子类将不同的实现某个方法时,把该类声明为抽象类很有用,可以共用相同的父类方法,不必再定义。 抽象类和抽象方法的关系:含有抽象方法的类一定是抽象类,抽象类里不一定含有抽象方法。抽象类存在的意义是用来被继承的。一个类继承了一个抽象类,必须实现抽象类里面所有的抽象方法,否则,此类也是抽象类。 abstract修饰符用来修饰类和成员方法 1:用abstract修饰的类表示抽象类,抽象类位于继承树的抽象层,抽象类不能被实例化。2:用abstract修饰的方法表示抽象方法,抽象方法没有方法体。抽象方法用来描述系统具有什么功能,但不提供具体的实现。 abstract 规则: 1:抽象类可以没有抽象方法,但是有抽象方法的类必须定义为抽象类,如果一个子类继承一个抽象类,子类没有实现父类的所有抽象方法,那么子类也要定义为抽象类,否则的话编译会出错的。 2:抽象类没有构造方法,也没有抽象静态方法。但是可以有非抽象的构造方法 3:抽象类不能被实例化,但是可以创建一个引用变量,类型是一个抽象类,并让它引用非抽象类的子类的一个实例 4:不能用final 修饰符修饰 Q:java里面有抽象类么?和接口的区别是什么? A:java中有抽象类,用关键字abstract修饰。 以下是我对这个问题的看法。 首先,从语法上讲,抽象类是一个类,根据java的单继承体系。如果它有子类,那么它的

子类只能继承它。 java允许实现多个接口。所以一个类可以实现多个接口 抽象类里面可以定义各种类型和访问权限的变量(就像普通类一样),也可以定义各种访问权限的方法(就像普通类一样)。 但是接口不可以。在接口里面定义的方法默认就是public abstract的,变量默认就是public static final的。(不管你有没有加权限控制符,不加,默认就是这些权限;加错了,权限缩小了,那么就会报错) 其次,从意义上讲,如果继承一个抽象类,那么抽象类和它的子类就有父子关系,即有类的层次关系(这关系到类的设计问题)。 接口,在我看来,是一种契约或者协议,是一层提供给另一层的接口(可以想象成OSI各层之间的关系) 在某一层中有多个类协作实现这个层的功能,通过接口暴露出去。但这些类之间会有层次关系(is a,has a) Q:一个方法加abstract和不加abstract有什么区别?就是说不加有什么关系?加了又会怎样? A:一方法要是加abstract,那么这个方法就是抽象的,须由子类去实现 抽象方法必须在抽象类当中,也就是说,一个类只要有一个方法是抽象的,那么这个类就必须是抽象类 抽象类里面的方法不一定要抽象的,也可以全都不是抽象的 抽象类不能实例化! 所以可以想到,当你不想让你的类被别人实例化,只想这个类的子类可以实例化,那么只要将这个类声明为abstract的就可以了

抽象类的定义及使用

1、课程名称:抽象类的定义及使用 2、知识点 2.1、上次课程的主要知识点 对象多态性总结如下: ·向上转型(90%):为了实现参数类型的统一,但是向上转型一定要与方法覆写产生关联; ·向下转型(1%):为了调用子类特殊的方法实现,但是向下转型前必须要首先发生向上转型,会存在操作的安全隐患,可以使用instanceof进行判断,但是不推荐这样使用; ·不转型(9%):为了方便操作直接使用系统类或者是一些功能类,例如:String、简单Java类。 2.2、本次预计讲解的知识点 1、抽象类的基本定义; 2、抽象类的使用原则。 3、具体内容(★★★★★★★★★★★) 不会抽象类与接口,Java = 没学。

3.1、抽象类的基本概念 如果说现在在一个类之中需要定义一个没有方法体的方法,那么可以利用abstract关键字来进行抽象方法的定义,而包含有抽象方法的类就可以使用abstract来定义成为抽象类。 类的核心组成:属性、方法,但是在学习完继承操作之后,会发现子类存在有一种覆写父类方法的机制,而且这一机制直接与对象的多态性有关。于是这样就会出现一个问题:假设现在使用的是普通类,并且在这个类里面有一个print()方法print()。 但是这个A类在设计之初有一个要求,希望继承它的子类一定要覆写这个print()方法。但事实上,这个时候的子类完全可以灵活的选择是否需要覆写方法。但是由于只是一个普通方法,所以对于子类是否覆写没有任何的要求,于是这样就会出现一个漏洞,父类无法强制要求子类覆写方法。 如果只依靠普通类的继承,那么根本就不能够对子类产生限制,所以就可以利用抽象类和抽象方法来解决此类问题。范例:定义抽象类 抽象方法的特点:一个是使用了abstract关键字定义,另外一个是方法的后面没有“{}”,表示没有方法体。 范例:错误的使用抽象类 本处直接采用了关键字new实例化了抽象类对象,但是在程序编译的时候就会出现如下的错误提示信息。 抽象类是不能够直接进行对象实例化操作的。因为一旦类的对象实例化了,就意味着可以调用类中的所有方法了,但是抽象方法只是一个声明,并没有具体的方法体。所以在实际的开发之中,对于抽象类的使用原则如下:·抽象类必须有子类,子类利用extends关键字来继承抽象类,一个子类只能够继承一个父类; ·抽象类的子类(如果不是抽象类),那么必须要覆写抽象类中的全部抽象方法; ·抽象类可以利用对象的向上转型机制,通过子类对象进行实例化操作。

实验7 抽象类

实验7 抽象类 一、实验目的 掌握抽象类的定义,理解抽象类与一般类的区别。进一步理解多态性的概念。 二、实验要求 1.掌握抽象类的定义,理解抽象方法。 2.掌握抽象类的使用。 三、实验内容 1)制作一个销售首饰的公司类。 属性: 一个保存员工的数组(也可采用Vector类来保存员工)。 方法: 1, 添加一个员工。 2, 通过员工的名字来删除员工。 3, 通过员工的名字来显示员工的工资。 4, 输出所有员工的工资和。 2)定义一个抽象员工类 属性:姓名,基本工资 抽象方法:计算工资。 3)子类:小时工类 属性: 工作的小时,每小时工资。 方法: 1. 设置工作的小时 2. 设置每小时的工资。 3. 重写计算工资方法: 小时工没有基本工资,他的工资就是工作的小时*每小时工资。 4)子类:销售员工类 属性: 销售的总金额 方法 1. 设置销售的总金额

2. 重写计算工资方法: 基本工资+提成。 提成的计算: 当销售额再10000 以下时,则提成10%, 等销售额再10000-100000之间是,则提成15%。 再100000以上是,提成18%。 5)子类:普通员工类 属性: 工作的小时 方法: 1. 设置工作的小时 2. 重写计算工资的方法: 当每月工作的小时数超过196 小时时,超出的部分按每小时200 元。基本工资+(工作的小时-196)*200。 6)在main 函数中生成 一个公司对象; 一个小时工的对象,每小时工资10,工作200 小时; 一个小时工的对象,每小时工资10,工作230小时; 一个销售员工的对象,基本工资1000,销售额5000; 一个销售员工的对象,基本工资1000,销售额200000; 一个普通员工对象,基本工资1200,工作小时205 小时。 (注:员工的姓名可自行拟定。) 将以上员工对象加入公司对象中,然后调用输出所有员工工资和的方法,查看该公司该月应该发的工资总和。 7)随着该公司的业务扩展,该公司决定自己生产首饰,该公司多了一种新的类型的员工,首饰工人。 定义首饰工人类: 属性 生产首饰的数量 方法 1 设置生产首饰的数量 2 重写计算工资的方法 工资== 设置生产首饰的数量*50; 8) 在main 函数中多生成一个首饰工人对象,生产首饰的数量30; 将该对象加入公司对象中, 然后调用输出所有员工工资和的方法,查看该公司该月应该发的工资总和。 四、思考题 继承,多态对于程序的可维护,可扩展带来的好处。

抽象类和抽象方法

抽象类和抽象方法 一、定义:java中可以定义的一些不含方法体的方法,它的方法体的实现交给该类的子类根据自己的情况去实现,这就是抽象方法。包含抽象方法的类就叫做抽象类。一个抽象类可以有一个或多个抽象方法。 二、抽象规则: 1、抽象类和方法必须用abstract来修饰; 2、抽象类不能被实例化; 3、抽象方法只需声明,无需实现,抽象方法一定调用子类重写后的非抽象的方法; 4、抽象类有构造但不能被调用; 5、含有抽象方法的类必须声明为抽象类,抽象类的子类必须覆盖所有的抽象方法后 才能被实例化,否则这个类还是个抽象类。 注意:抽象方法不能为private的,因为抽象方法没有具体实现,需要在子类中继承并重写来实现具体实现。抽象方法必须重写实现其具体的功能。【TestAbstract.java】 package day7am; public abstract class TestAbstract { public abstract void test();//含有抽象方法的类一定是抽象类。 public static void main(String[] args) { } } 三、抽象方法的继承与实现 当某类继承抽象类时,如果其本身不是抽象类时,则必须实现所继承抽象类中的抽象方法。如,具有启动(startup)方法的抽象车辆类Car,其每中子类都必须实现其自己的、专属于某种类型车辆的具体启动(startup)方法,下边例子就说明了。【TestAbstract.java】 package Pra; //定义抽象类Car abstract class Car { //定义抽象方法startUp public abstract void startUp(); } //定义抽象类Audi并使该类继承自Car abstract class Audi extends Car { //定义抽象方法turbo public abstract void turbo(); } //定义非抽象类Audi_A6继承自Audi class Audi_A6 extends Audi { //实现startUp方法 public void startUp() {

抽象类与接口的区别

抽象类与接口的区别 abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。 其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解、对于设计意图的理解是否正确、合理。本文将对它们之间的区别进行一番剖析,试图给开发者提供一个在二者之间进行选择的依据。 一、理解抽象类 abstract class和interface在Java语言中都是用来进行抽象类(本文中的抽象类并非从abstract class翻译而来,它表示的是一个抽象体,而abstract class为Java语言中用于定义抽象类的一种方法,请读者注意区分)定义的,那么什么是抽象类,使用抽象类能为我们带来什么好处呢? 在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样。并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类往往用来表征我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。 比如:如果我们进行一个图形编辑软件的开发,就会发现问题领域存在着圆、三角形这样一些具体概念,它们是不同的,但是它们又都属于形状这样一个概念,形状这个概念在问题领域是不存在的,它就是一个抽象概念。正是因为抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能够实例化的。 在面向对象领域,抽象类主要用来进行类型隐藏。我们可以构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。这个抽象描述就是抽象类,而这一组任意个可能的具体实现则表现为所有可能的派生类。模块可以操作一个抽象体。由于模块依赖于一个固定的抽象体,因此它可以是不允许修改的;同时,通过从这个抽象体派生,也可扩展此模块的行为功能。熟悉OCP的读者一定知道,为了能够实现面向对象设计的一个最核心的原则OCP(Open-Closed Principle),抽象类是其中的关键所在。 二、从语法定义层面看abstract class和interface 在语法层面,Java语言对于abstract class和interface给出了不同的定义方式,下面以定义一个名为Demo的抽象类为例来说明这种不同。使用abstract class的方式定义Demo抽象类的方式如下: java 代码 abstract class Demo { abstract void method1(); abstract void method2(); …

抽象类和接口的相同和异同点

抽象类和接口的相同和异同点 声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。 接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。 在编写对象的时候会对一些类的方法进行定义。但是并没有具体的实现。而是把它们放到子类中去实现,具有灵活性。在抽象类中可以有抽象方法,也可以没有抽象方法。但是有了抽象方法的类一定是抽象类。 抽象类和接口在JA V A中都是用来表述抽象类的。 在面向对象的概念,所以的对象都是通过类来描述的。但反之则不行。若是一个类中没有包含足够的信息描绘一个具体的对象,这个的类就是抽象类。 在JA V A中除了使用抽象类来实现一定程度的抽象外还可以定义一种特殊的抽象方法----接口(interface)。和抽象类的方法不一样,在抽象类中需要加上关键字abstract来表明某个方法是抽象的,但是在接口中则不需要。 相同点: 1.他们都能不能生成实例,都有抽象方法。 2接口是特殊的抽象类。 3.接口和抽象类的继承都使用的关键字是extends。 不同点: 1.接口的定义的变量默认是public static final型,且必须给其赋初值。所以在实现类中不能重新定义,也不能改变其值。而在抽象类中其值在子类中可以重新定义也可以重新赋值。 2.接口的方法默认的都是public abstract类型的。 3.抽象类中可以有构造器,但是接口中除了抽象方法什么都没有。 4.名字不同,接口写的是public interface Shape{}; 而抽象类写的是public abstract class Shape{}; 接口里全部都是抽象方法。而抽象类里可以有抽象方法也可以有其他的方法。接口里的属性都是静态的。但是抽象类的属性可以是任意的。 5.还可以从继承的角度看,接口可以多继承,一个接口可以继承多个接口。但是抽象类却不能,只能是继承一个父类,不能继承多个父类。要是能继承多个父类的话会在父类和子类的方法中有发生冲突。

java基本概念总结

小结 1、对象的初始化 (1) 非静态对象的初始化 在创建对象时,对象所在类的所有数据成员会首先进行初始化。 基本类型:int型,初始化为0。 如果为对象:这些对象会按顺序初始化。 ※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。 构造方法的作用就是初始化。 (2) 静态对象的初始化 程序中主类的静态变量会在main方法执行前初始化。 不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。 2、继承时,对象的初始化过程 (1) 主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为private。 (2) 主类静态成员的初始化。 (3) 主类的超类由高到低进行默认构造方法的调用。注意,在调用每一个超类的默认构造 方法前,先进行对此超类进行非静态对象的初始化。 (4) 主类非静态成员的初始化。 (5) 调用主类的构造方法。 3、关于构造方法 (1) 类可以没有构造方法,但如果有多个构造方法,就应该要有默认的构造方法,否则在继承此类时,需要在子类中显式调用父类的某一个非默认的构造方法了。 (2) 在一个构造方法中,只能调用一次其他的构造方法,并且调用构造方法的语句必须是第一条语句。 4、有关public、private和protected (1) 无public修饰的类,可以被其他类访问的条件是:a.两个类在同一文件中,b.两个类 在同一文件夹中,c.两个类在同一软件包中。 (2) protected:继承类和同一软件包的类可访问。 (3) 如果构造方法为private,那么在其他类中不能创建该类的对象。 5、抽象类 (1) 抽象类不能创建对象。 (2) 如果一个类中一个方法为抽象方法,则这个类必须为abstract抽象类。 (3) 继承抽象类的类在类中必须实现抽象类中的抽象方法。 (4) 抽象类中可以有抽象方法,也可有非抽象方法。抽象方法不能为private。 (5) 间接继承抽象类的类可以不给出抽象方法的定义。 6、final关键字 (1) 一个对象是常量,不代表不能转变对象的成员,仍可以其成员进行操作。

Java实验7抽象类和接口

实验6 抽象类和接口 一、实验目的: 1、学习掌握抽象类的概念和使用方法。 2、学习掌握接口的概念和定义接口的方法。 3、学习使用Cloneable接口和clone方法进行对象内容的复制。 4、理解浅复制和深复制的概念,掌握覆盖clone方法进行对象内容深复制 的技术。 二、实验任务: 1、学习掌握抽象类的概念和使用方法。程序要求: (1)首先创建一个类家族,其中抽象类几何图形类GeometricObject为父类,圆类Circle和矩形类Rectangle为子类。几何图形类 GeometricObject中定义保护型字符串变量color,表示图形的颜色; 该类要具备构造方法和两个抽象方法findArea和findPerimeter,抽 象方法findArea求图形面积,抽象方法findPerimeter求图形周长。 (2)Circle类和Rectangle类是GeometricObject类的子类,其中应实现父类的抽象方法。 (3)程序主方法中创建两个几何对象,一个圆和一个矩形,并用GeometricObject类的引用变量引用它们,调用抽象方法。 2、学习接口的概念和利用接口实现多态的方法。程序要求如下: (1)首先创建圆类Circle和圆柱体类Cylinder,其中Circle类是父类,Cylinder类是子类; (2)创建接口Comparable,其中包含一个抽象方法compareTo,用来比较对象的大小。抽象方法compareTo的形式如下: public int compareTo(Object o); (3)创建类ComparableCircle,该类为Circle类的子类,并实现

抽象方法必须在抽象类中

一、判断题 1、抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。 2、Final类中的属性和方法都必须被final修饰符修饰。 3、最终类不能派生子类,最终方法不能被覆盖。 4、子类要调用父类的方法,必须使用super关键字。 5、一个Java类可以有多个父类。 6、如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是正确的。 7、一个类如果实现了某个接口,那么它必须重载该接口中的所有方法。 8、接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。 9、子类的域和方法的数目一定大于等于父类的域和方法的数目。 10、所谓静态初始化器就是在构造函数之前加上static修饰符 11、在java中,一个类可同时定义许多同名的方法,这些方法,这些方法的形式参数的个 数、类型或顺序各不相同,这种面向对象程序特性称为隐藏。 12、一个类只能有一个父类,但一个接口可以有一个以上的父接口 13、抽象类没有具体对象,所以抽象类没有构造函数 14、接口是特殊的类,所以接口也可以继承,予接口将继承父借口的所有常量和抽象方法 15、Java语言不支持类的多重继承 16、一个类就相当于一种数据类型。 17、类的定义是可以嵌套的 18、方法重载要求方法名相同,参数列表也相同。 19、方法覆盖要求子类的方法与被覆盖的方法的方法头完全一致,范围一致或变小。() 多选题(每题两个正确答案) 1. 在Java中,下列哪两句是正确的: ()cd A. 子类的构造方法与父类的构造方法同名 B. 子类可以继承父类的所有方法 C. 子类不一定能继承父类的所有方法 D. 子类可以继承父类protected和public的方法 E. 子类可以继承父类protected和private的方法 2. MyPoint方法,返回Point类型,其定义正确的是: ()ac A. pub lic Point MyPoint (int x){…} B. public int MyPoint (int x) {…} C. static Point MyPoint ( int x, int y) {…} D. static int MyPoint (Point p) {…} 3. 若有以下接口的定义:public interface IA extends IB ,IC, ID{…};则:()bd A. 这个接口的声明是错误的 B. 接口IA继承了接口IB,IC和ID C. 接口IA实现了接口IB,IC和ID D. 关键字extends指明接口的继承关系 4. 下面哪几个函数是public void example(){...}的重载函数?( ) ad A public void example( int m){...} B public int example(){...} C public void example2(){...} D public int example ( int m, float f){...}

Java 基础概念

Java 基础概念 Java基础-学习Java的30个基本概念Java概述: 目前Java主要应用于中间件的开发(middleware)---处理客户机于服务器之间的通信技术,早期的实践证明,Java不适合pc应用程序的开发,其发展逐渐变成在开发手持设备,互联网信息站,及车载计算机的开发.Java于其他语言所不同的是程序运行时提供了平台的独立性,称许可以在windows,solaris,linux其他操作系统上使用完全相同的代码.Java的语法与C++语法类似,C++/C程序员很容易掌握,而且Java是完全的彻底的面向对象的,其中提出了很好的 GC(Garbage Collector)垃圾处理机制,防止内存溢出. Java的白皮书为我们提出了Java语言的11个关键特性. (1)Easy:Java的语法比C++的相对简单,另一个方面就是Java能使软件在很小的机器上运行,基础解释其和类库的支持的大小约为40kb,增加基本的标准库和线程支持的内存需要增加125kb. (2)分布式:Java带有很强大的TCP/IP协议族的例程库,Java应用程序能够通过URL来穿过网络来访问远程对象,由于servlet机制的出现,使Java编程非常的高效,现在许多的大的web server都支持servlet. (3)OO:面向对象设计是把重点放在对象及对象的接口上的一个编程技术.其面向对象和C++有很多不同,在与多重继承的处理及Java的原类模型. (4)健壮特性:Java采取了一个安全指针模型,能减小重写内存和数据崩溃的可能性。 (5)安全:Java用来设计网路和分布系统,这带来了新的安全问题,Java可以用来构建防病毒和防攻击的System.事实证明Java在防毒这一方面做的比较好. (6)中立体系结构:Java编译其生成体系结构中立的目标文件格式可以在很多处理器上执行,编译器产生的指令字节码(Javabytecode)实现此特性,此字节码可以在任何机器上解释执行. (7)可移植性:Java中对基本数据结构类型的大小和算法都有严格的规定所以可移植性很好. (8)多线程:Java处理多线程的过程很简单,Java把多线程实现交给底下操作系统或线程程序完成.所以多线程是Java作为服务器端开发语言的流行原因之一 (9)Applet和servlet:能够在网页上执行的程序叫Applet,需要支持Java的浏览器很多,而applet支持动态的网页,这是很多其他语言所不能做到的.

Java抽象类的概念和使用

Java抽象类的概念和使用 在自上而下的继承层次结构中,位于上层的类更具有通用性,甚至可能更加抽象。从某种角度看,祖先类更加通用,它只包含一些最基本的成员,人们只将它作为派生其他类的基类,而不会用来创建对象。甚至,你可以只给出方法的定义而不实现,由子类根据具体需求来具体实现。 这种只给出方法定义而不具体实现的方法被称为抽象方法,抽象方法是没有方法体的,在代码的表达上就是没有“{}”。包含一个或多个抽象方法的类也必须被声明为抽象类。 使用abstract 修饰符来表示抽象方法和抽象类。 抽象类除了包含抽象方法外,还可以包含具体的变量和具体的方法。类即使不包含抽象方法,也可以被声明为抽象类,防止被实例化。 抽象类不能被实例化,抽象方法必须在子类中被实现。请看下面的代码: 1.import static https://www.360docs.net/doc/7b2245265.html,ng.System.*; 2. 3.public final class Demo{ 4.public static void main(String[] args){ 5. Teacher t =new Teacher(); 6. t.setName("王明"); 7. t.work(); 8. 9. Driver d =new Driver(); 10. d.setName("小陈"); 11. d.work(); 12. } 13.} 14. 15.// 定义一个抽象类 16.abstract class People{ 17. private String name;// 实例变量 18. 19. // 共有的 setter 和 getter 方法 20. public void setName(String name){ 21. https://www.360docs.net/doc/7b2245265.html, = name; 22. } 23. public String getName(){ 24. return https://www.360docs.net/doc/7b2245265.html,; 25. }

CDE基本概念

面向对象问题处理的关键是建模问题。建模可以把在复杂世界的许多重要的细节给抽象出来。许多建模工具封装了UML(也就是Unified Modeling Language),UML中有九种建模的图标,即:用例图、类图、对象图、顺序图、协作图、状态图、活动图、组件图、配置图。本文重点讲述类图。 为什么UML很重要? 为了回答这个问题,我们看看建筑行业。设计师设计出房子。施工人员使用这个设计来建造房子。建筑越复杂,设计师和施工人员之间的交流就越重要。蓝图就成为了这个行业中的设计师和施工人员的必修课。 写软件就好像建造建筑物一样。系统越复杂,参与编写与配置软件的人员之间的交流也就越重要。在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”。现在它已经成为了软件行业的一部分了。UML提供了分析师,设计师和程序员之间在软件设计时的通用语言。 UML被应用到面向对象的问题的解决上。想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的。一个模型model就是根本问题的抽象。域domain就是问题所处的真实世界。 模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的。记住把一个对象想象成“活着的”。对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations)。对象的属性的值决定了它的状态state。 类Classes是对象的“蓝图”。一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数)。对象是类的实例instances。 UML中的4种关系 UML 中类与类, 类与接口, 接口与接口之间的关系有: 泛化(generalization) 关系, 关联(association)关系( 关联, 聚合, 合成), 依赖(dependency)关系,实现(realization)关系. 泛化(generalization)关系是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。用这种方法,子元素共享了父元素的结构和行为。泛化关系其实是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性。

相关文档
最新文档