IT十八掌第五天课程总结(含作业)

IT十八掌第五天总结

class 

	成员变量,属性
	成员函数,方法.

构造函数
-------------
	和类同名。
	没有返回值。

javabean的规范
------------------
	私有的属性,
	公有的getter/setter.

代码块
----------------
	1.局部代码块
		在函数内部定义{},
		不能使用static修饰。
	2.构造代码块
		也是类的成员,和成员变量和成员函数同级。
		构造对象时,先调用构造代码块,然后是构造函数。

	3.静态代码块
		构造代码块 + static修饰符。
		静态代码块在类加载的时候执行,而且只执行一次。
		手动控制类加载使用Class.forName("classname"),默认加载类时,执行代码块。
		Class.forName(String,boolean initialize,ClassLoader)可以控制加载时是否初始化。

继承

    多个类中存在相同的属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性
和行为,只要继承那个类即可。
    

    多个类可以称为子类,单独的类可以称为父类或者超类。

    子类可以直接访问父类中的非私有的属性和行为。

    通过extend关键字让类和类之间产生继承关系。
    class SubDemo extends Demo {}
    让B类继承A类
    class B extend A { …… }

    继承的出现提高了代码的重用性,。

    继承的出现让类和类之间产生了关系,提供了多态的前提。

继承的特点

     java 只支持单继承,不支持多继承
     一个类只只能有一个父类,不可以有多个父类。
     class A {} 
     class AA {}
     class B exdents A {}
     class c exdents A ,AA   //error

     java支持多层继承
     class A {} 
     class B exdents A {}
     class C exdents B {}

Super 
    super和this的用法相像
    this代表本类对象的引用
    super代表父类的内存空间的标识。
    当子父类出现同名成员时,可以用super进行区分
    子类要调用父类构造函数时,可以使用super语句。
  
  在本类当中
   super(); 调用父类的构造函数
   super.  调用父类的方法

   this.  调用本类的其他方法
   this()调用本类的其他构造函数

   this() super()  构造函数必须是第一行
   this .  super. 可以在任意位置调用

  子类中所有的构造函数默认都会访问父类中空参数的构造函数

  当父类中没有空参数的构造函数时,子类的构造函数必须通过this或者super
  语句指定要访问的构造函数。

 子类重写的权限要大于父类的方法权限(权限可放大,不能缩小(不能私有化))。

 final
 ---------------
 修饰类,表示 类不能被继承
 修饰方法  表示方法不能被修改
 私有方法可以使用final 可以编译 但是无意义
 final修饰的变量是一个常量。只能被赋值一次。 (如果未赋值,编译无法通过)

 abstract     抽象的
 -------------

 1. 没有方法体的方法, 必须使用abstract 修饰
 2.抽象方法只能存在于抽象类中
 3.抽象类也必须使用abstract 修饰。
 4. 抽象类不一定要有抽象方法
 5.abstract+static    是非法的修饰符组合
   final+abstracr     非法的修饰符组合
   private +abstract  是非法的修饰符组合

  6.面向接口的编程,降低耦合度(便于维护)增强可扩展性

抽象方法只有方法声明,没有方法体,第一在抽象类中
格式: 修饰符 abstract 范围值类型 函数名(c参数列表);

抽象类不可以被实例化,不能被 new 创建对象
    抽象类是具体事物抽取出来的,本身是不具体的,无对应的实例。
    抽象类即使创建了对象,调用抽象方法也没有意义。

抽象类通过子类来实例化。  该子类必须完全覆盖掉抽象类中的所有抽象方法才可以创建

接口    interface
--------------------

格式 
   interface {}

   接口的成员修饰符是固定的
   成员变量:public static final  (常量)
   成员函数:public abstract 
   发现接口中的成员都是public

    接口和接口之间允许继承
    接口允许多重继承
  

    类和接口之间是实现关系 

 *.文字阐述静态代码块的作用。

 A : 静态代码块在类加载的时候执行,而且只执行一次。
 可以自定义静态代码段的执行

*.构造代码块与构造函数的调用顺序如何?和方法的声明位置是否有关?为什么?构造代码块的作用是什么?

A: 顺序为 构造代码块 --> 构造函数 ,和方法的声明位置无关。
    也是类的成员,和成员变量和成员函数同级。主要是为了提高代码的重用性并对成员变量进行初始化。

*.类加载时,是否一定会执行静态代码块?如何手动控制类加载?

A:类加载是默认是会自动加载执行静态代码块的,
手动控制类加载使用Class.forName("classname"),默认加载类时,执行代码块。

*.定义类Person,Man,Woman形成继承关系。

A:
/**
* extends格式 : class B extends A {}   B-->A  
*/
class Person {      //定义Person 类
      
}
 class Man extends Person{  //让man 类继承Person  

 } 
 class Woman extends Person{
 }

*.什么是抽象方法?什么是抽象类?抽象类是否有构造函数,是否可以重载?

A: 抽象方法是 必须使用abstract 来修饰的没有方法体必须有子类来具体实现的方法‘
包含抽象方法的类就是抽象类也必须使用abstract 来修饰。
   抽象类一样有构造函数 同样可以被重载

*.抽象修饰符有哪些非法组合?并给出合理的解释?

A:abstract+static         static修饰的是公共类的属性,抽象的直接访问没有意义。
   final+abstracr          final 是最终的不能被更改,而abstract 是需要子类来实例化,需要对它进行操作的。
   private +abstract       私有化是不能被继承的,而abstract是需要子类来实例化的

*.super和this作用以及用法以及注意事项?

A:Super 
    super和this的用法相像
    this代表本类对象的引用
    super代表父类的内存空间的标识。
    当子父类出现同名成员时,可以用super进行区分
    子类要调用父类构造函数时,可以使用super语句。
  
  在本类当中
   super(); 调用父类的构造函数
   super.  调用父类的方法

   this.  调用本类的其他方法
   this()调用本类的其他构造函数

   this() super()  构造函数必须是第一行
   this .  super. 可以在任意位置调用
  

*.定义接口
	1.IWhite
	2.IRich
	3.IBeanti
	4.定义类,实现以上三个接口.(WomenStar)
	5.定义土豪类(EarchRicher.marring(...))

	/**
* interface  接口的格式是: interface {} 
*/

//定义三个 白、富、美
interface  IWhite{   //定义白
	public void  Whiteing (); 
}
interface  IRich{   //定义富
	public void  Riching (); 
}
interface  IBeautiful{   //定义美
	public void  Beautifuling (); 
}

//定义一个接口继承白、富、美 三个接口

interface WomanStart extends IWhite,IRich,IBeautiful{

}

//定义土豪类

class EarchRicher{                     //
	    public void marry(WomanStart MM){
	   System.out.println("FIND 白富美 !!");
	  }
	}

class EarchRicherMan { 
	public static void main(String[] args){

    WomanStart W = new WomanStart(){
		public void  Whiteing (){ 
		}
		public void  Riching (){ 
		} 
		public void  Beautifuling (){ 
		}

	};
     EarchRicher M =new EarchRicher();
	 M.marry(W);
	}

}
时间: 2024-08-07 00:13:10

IT十八掌第五天课程总结(含作业)的相关文章

IT十八掌第七天总结(含作业)

IT十八掌第七天总结(含作业) 回顾 -------- 对象A 子类 AA 子类AAA 可以使用 A AA AAA 分别来创建新的子类 可以使用任意一个来声明 抽象类和接口 -------------------    接口中的所有方法都是抽象的    抽象类可以没有抽象方法  共    都不能实例化  内部类编译后成员位置         用"$" 来间隔的  局部位置       用数字来间隔        匿名内部类对象 ------------------------     

十八掌第三天课程总结

学习内容 数组的形式,数组的内部存储结构 选择排序,冒泡排序,折半查找 课后作业 1.定义一个函数,函数功能是动态提取int[]中元素的最大值. 2.定义一个函数,从数组中查询指定的元素首次出现的位置. 3.定义函数,完成冒泡排序,大数下沉. 4.折半查找. 5.阐述 6.定义一个函数,实现矩阵的转置.arr[i][j] == arr[j][i];//前提条件是正方的. 7.遍历三维组数,横向输出三维数组的每一个层. 8.定义一个类:Dog 有名称 color age cry(); 9.阐述出来

IT十八掌掌第十二天课程总结

今天学完IT十八掌第十二天java基础课程: 学习内容: HashMap和HashTable底层都是采用数组+链表实现的. 结合了数组的寻址快,链表增删快的特点.使用散列算法(hash算法)将元素分配到数组的元素当中, hash分区默认16个,每个分区内存储的是链表 1,算出hashcode,进行&0xof取出后四位初步比较,确定分区 2,然后拿对象和链表中每个对象相比较,比较每个对象的hash码是否相同. 1. 判断hashcode是否相同 2.判断是否同一对象或者equals返回true 所

IT十八掌掌第八天课程总结

今天学完IT十八掌第八天java基础课程: 学习内容: 复习jar命令 --------------- [将类路径下的类打成jar文件] jar cvf myjar.jar -C classes/ . jar cvfe myjar.jar a.a1.a11.a111.A -C classes/ .        //e指定的入口点. [使用java -jar参数来运行程序] java -jar myjar.jar                            //执行jar文件 java

IT十八掌掌第一天课程总结

今天学完IT十八掌第一天java基础课程: 学习内容: 1,计算机基础以及windows快捷键及常见设置 |---Dos快捷键 1.dir : directory 2.d: 切换盘符. 3.tab : 补全按键 shift + tab : 反向操作. 4.cd : 进入目录 5.mkdir :mkd /make directory 创建目录 6. 目录 .. : 上级目录 . : 当前目录 7.复制 cp copy 8:del : 删除文件 del a.txt // -s :递归 // -q :

IT十八掌掌第九天课程总结

今天学完IT十八掌第九天java基础课程: 学习内容: 创建线程方式 ----------------- 1.Thread class Demo extends Thread { public void run() { } } 2.Runnable{public void run();} class Man extends Person implements Runnable{ public void run(){ ... } } new Car().start(); new Thread(ne

IT十八掌第三天课程总结

1.函数定义: 函数就是定义在类中的具有特定功能的一段独立的小程序. 2.函数的特点: 可以将功能进行封装 对该功能进行复用, 函数只有被调用才会被执行 函数的出现提高的代码的复用性 对于函数没有具体返回值的情况,返回值类型用关键字void表示.那么该函数中的return语句如果在最后一行可以省略不写. 注意两点: 函数中只能调用函数,不可以在函数内部定义函数 定义函数时候,函数的结果应该返回给调用者,交由调用者处理. 函数的格式: 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形

IT十八掌第四天课程

java数据类型: byte  : 一个字节,-128 ~127 short : 两个字节,-32768 ~ 32767 int      :  四个字节. long   : 八个字节. float   : 4字节 double:8个字节 boolean:1个字节 char    :2 个字节 /** *基本类型演示 */ class BaseType{ public static void main (String [] agrs){ //字节型变量 byte b = 127; System.

IT十八掌掌第五天课程总结

今天学完IT十八掌第五天java基础课程: 学习内容: 1,jvm栈空间设置 堆空间设置:    java -Xmx<size> java -Xms<size> 栈空间设置: java -Xss<size> 死循环不会导致栈溢出,因为在不断的压栈,弹栈 方法不断迭代会导致栈溢出,不断的在压栈(方法帧) 2,继承 构造函数: 为什么没有返回值. 因为构造函数就是为了返回对象的,固定了,所以没必要定义返回值类型. 代码块 ----------------------- 构造