day10作业
1.Java中,用{}括起来的代码称为代码块。
代码块分为局部代码块,构造代码块,静态代码块,同步代码块
局部代码块:在方法中出现,限定生命周期,及早释放,提高内存利用率
构造代码块:在类中方法外出现,多个构造方法中相同的代码块放到一起,每次调用构造都执行,并且在构造方法前执行
静态代码块:在类中方法外出现,并加上static修饰符;用于给类进行初始化,在加载的时候就执行,并且只执行一次。一般用于加载驱动,位于主方法类中的静态代码块先于主方法执行。
2.静态代码块——构造代码块——构造方法
3.让类与类之间产生关系,子父类关系。
4.a.提高了代码的复用性
b.提高了代码的维护性
c.让类与类之间产生了关系,是多态的前提
5.a:java只支持单继承,不支持多继承
b:java支持多重继承
6.注意事项:
a:子类只能继承父类所有非私有的成员(成员方法和成员变量)
b:子类不能继承父类的构造方法,但是可以通过关键字super去访问父类的构造方法
c:不要为了部分功能而去继承
继承体现的是一种关系“is a”,如果有两个类A,B,只有他们符合A是B的一种或者B是A的一种,就可以考虑使用继承。
7.A:如果子类中没有这个成员变量就访问父类中的该成员变量,如果子类中有这个成员变量,就默认使用该成员变量。
B:子类中所有的构造方法都会访问父类中的空参构造。
8.在继承中,子类中所有的构造方法都会访问父类中的空参构造。假如父类中没有无参构造,会报错。
有几种解决方式:1.在父类中加一个无参构造;2.在子类中用super关键字取访问父类中的带参构造;3.子类通过this去调用本类中的其他构造方法
9.方法重写是子类重出现了和父类中方法声明一模一样的方法。与返回值类型有关,返回值是一致的;方法重载是本类中出现的方法名一样,参数列表不同的方法,与返回值类型无关。
overload可以改变返回值类型,看参数列表。
this:谁来引用我,我就代表谁
super:代表当前对象父类的引用
this.成员变量:调用本类的成员变量,也可以调用父类的成员变量(本类没有的情况下)
super.成员变量:调用父类的成员变量
class Test_Extends {
public static void main(String[] args) {
/*Son s = new Son();
s.son();*/
Cat c = new Cat();
c.show1();
c.show2();
System.out.println("------------------------");
Dog d = new Dog();
d.show1();
d.show2();
}
}
/*class Father {
private aint num1 = 10;
int num2 = 20;
}
class Son extends Father {
int num1 = 20;
public void son(){
System.out.println(super.num1);
System.out.println(this.num2);
}
}*/
class Animal {
String color = "white";
int legs = 4;
public void show1(){
System.out.println("白色");
}
public void show2(){
System.out.println("有4条腿");
}
}
class Cat extends Animal {
}
class Dog extends Animal {
}
11.1.修饰类,类不能被继承
2.修饰变量,变量就变成了常量,只能被赋值一次
3.修饰方法,方法不能被重写
12.A.final关键字修饰局部变量
1.基本类型,是值不能被改变
2.引用类型,是地址值不能被改变,对象中的属性可以改变。
B.final修饰变量的初始化时机
1.显式初始化(此时成员的默认初始化值0,是无效值)
2.在对象构造完毕前即可(错误:变量 num 未在默认构造器中初始化)
day10作业的更多相关文章
- Day10作业及默写
1,继续整理函数相关知识点,写博客. 2,写函数,接收n个数字,求这些参数数字的和.(动态传参) def func(*number): sum=0 for num in number: sum+=nu ...
- 老男孩Day10作业:主机管理程序
一.作业需求: 1, 运行程序列出主机组或者主机列表 2,选择指定主机或主机组 3,选择主机或主机组传送文件(上传/下载) 4,充分使用多线程或多进程 5,不同主机的用户名,密码,端口可以不同 6,可 ...
- python day10作业答案
2.def func(*args): sum = 0 for i in args: sum=sum+int(i) return sum a=func(2,3,9,6,8) print(a) 3. a= ...
- python day10作业
- day10作业—(闭包迭代器递归)
补充:一个星号的 打散和聚合 a, b , *c = [1,2, 1,4] print( a , b , *c) #1 2 1 4 print(a, b, c) #1 2 [1, 4] *c , = ...
- day10作业(函数实现注册''')
在猜年龄的基础上编写登录.注册方法,并且把猜年龄游戏分函数处理,如 登录函数 注册函数 猜年龄函数 选择奖品函数 '''在猜年龄的基础上编写登录.注册方法,并且把猜年龄游戏分函数处理,如 2. 登录函 ...
- day10 作业
猜年龄升级版 ''' 1. 可以直接玩猜年龄游戏,不需要登录 2. 登录成功后玩猜年龄游戏 3. 猜年龄猜中后,可以选择两次奖品 4. 注册的用户名不能重复注册 ''' import random p ...
- Alpha冲刺——day10
Alpha冲刺--day10 作业链接 Alpha冲刺随笔集 github地址 团队成员 031602636 许舒玲(队长) 031602237 吴杰婷 031602220 雷博浩 031602634 ...
- python 作业
Linux day01 计算机硬件知识整理 作业要求:整理博客,内容如下 编程语言的作用及与操作系统和硬件的关系 应用程序->操作系统->硬件 cpu->内存->磁盘 cpu与 ...
随机推荐
- Python OS模块操作文件和目录
#-*-coding:utf-8-*- import os import shutil ###############OS模块############## #获得当前python脚本的工作目录 os. ...
- 观V8源码中的array.js,解析 Array.prototype.slice为什么能将类数组对象转为真正的数组?
在官方的解释中,如[mdn] The slice() method returns a shallow copy of a portion of an array into a new array o ...
- 彻底理解 Python 生成器
1. 生成器定义 在Python中,一边循环一边计算的机制,称为生成器:generator. 2. 为什么要有生成器 列表所有数据都在内存中,如果有海量数据的话将会非常耗内存. 如:仅仅需要访问前面几 ...
- Python【OS】模块
import osprint(os.getcwd())#取当前工作目录#os.chmod("day6-os模块.py",2)#给文件/目录加权限,对Windows的下面不好使(1. ...
- Java基础-Calendar类常用方法介绍
Java基础-Calendar类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Calendar类概念 Calendar 类是一个抽象类,它为特定瞬间与一组诸如 Y ...
- BIO、NIO、AIO三者的比较
消息时的系统通信,通常基于网络协议实现.常见的协议包括TCP/IP,UDP/IP. TCP/IP等协议用于数据传输,但要完成通信,还需要对数据进行处理.例如读取和写入数据. I/O可以分为两种:同步I ...
- JavaScript 数组元素排序
var sortArray = new Array(3,6,8888,66); // 元素必须是数字 sortArray.sort(function(a,b){return a-b}); // a-b ...
- Java并发编程原理与实战二十八:信号量Semaphore
1.Semaphore简介 Semaphore,是JDK1.5的java.util.concurrent并发包中提供的一个并发工具类. 所谓Semaphore即 信号量 的意思. 这个叫法并不能很好地 ...
- UC手机浏览器(U3内核)相关文档整理
Note:绝大多数API在IOS版下不支持,使用前请自行测试. UC官方的开发者中心:http://www.uc.cn/business/developer.shtml U3内核定制<meta& ...
- AngularJS 、Backbone.js 和 Ember.js 的比较
1 介绍 我们准备在这篇文章中比较三款流行于Web的“模型-视图-*”框架:AngularJS.Backbone和Ember.为你的项目选择正确的框架能够对你及时交付项目的能力和在以后维护你自己代码的 ...