javaSE第十天

第十天????57

1. 形式参数和返回值的问题(理解)????57

(1)形式参数:????57

(2)返回值类型:????57

(3)链式编程????57

2. 包(理解)????57

(1)其实就是文件夹????57

(2)作用:????57

(3)包的定义(掌握)????58

(4)注意事项:(掌握)????58

(5)带包的编译和运行????58

3. 导包(掌握)????58

4. 权限修饰符(掌握)????59

5. 常见的修饰符(理解)????59

6. 内部类(理解)????60

(1)定义:????60

(2)内部类的访问规则????60

(3)内部类的分类????60

(4)成员内部类????60

(5)成员内部类的面试题(填空)????60

(6)局部内部类????61

(7)匿名内部类(掌握)????61

(8)匿名内部类在开发中的使用????61

(9)匿名内部类的面试题????62

?

第十天

1. 形式参数和返回值的问题(理解)
????(1)形式参数:

????????类名:需要的是该类的对象

????????抽象类名:需要该类的子类对象

????????接口名:需要该接口的实现类对象

????(2)返回值类型:

????????类名:返回的是该类的对象

????????抽象类名:返回的是该类的子类对象

????????接口名:返回的是该接口的实现类的对象

????(3)链式编程

????????对象.方法1().方法2().......方法n();

????????

????????这种用法:其实在方法1()调用完毕后,应该一个对象;

???????????? 方法2()调用完毕后,应该返回一个对象。

???????????????? 方法n()调用完毕后,可能是对象,也可以不是对象。

?

2. 包(理解)
????(1)其实就是文件夹
????(2)作用:

????????A:区分同名的类

????????B:对类进行分类管理

????????????a:按照功能分

????????????b:按照模块分

????(3)包的定义(掌握)

????????package 包名;

????????

????????多级包用.分开。

????(4)注意事项:(掌握)

????????A:package语句必须在文件中的第一条有效语句

????????B:在一个java文件中,只能有一个package

????????C:如果没有package,默认就是无包名

????(5)带包的编译和运行

????????A:手动式

a: 编写一个带包的 java 文件

b: 通过javac 命令编译该java文件

c: 手动创建包名

d: 把b步骤的class文件放到c步骤的最底层包

e: 回到和包根目录在同一目录的地方,然后运行

????????B:自动式(掌握)

a: 编写一个带包的 java 文件

b: javac编译的时候带上 -d 即可

c: 回到和包根目录在同一目录的地方,然后运行

?

????????????javac -d . HelloWorld.java

????????????

3. 导包(掌握)

????(1)我们多次使用一个带包的类,非常的麻烦,这个时候,Java就提供了一个关键字import。

????(2)格式:

????????import 包名...类名;

????????另一种:

????????import 包名...*;(不建议)

????(3)package,import,class的顺序

????????package > import > class

Package:只能有一个

Import:可以有多个

Class:可以有多个,但是建议是一个

????

4. 权限修饰符(掌握)

????(1)权限修饰符

????????????????????本类????同一个包下????不同包下的子类????不同包下的无关类

????????private????????Y

????????默认????????Y????????Y

????????protected????Y????????Y????????????Y

????????public????????Y????????Y????????????Y????????????????Y

????(2)这四种权限修饰符在任意时刻只能出现一种。

????????public class Demo {}????????

?

5. 常见的修饰符(理解)

????(1)分类:

????????权限修饰符:private,默认,protected,public

????????状态修饰符:static,final

????????抽象修饰符:abstract

????(2)常见的类及其组成的修饰

????????类:

????????????权限修饰符:默认修饰符、public

状态修饰符:final

抽象修饰符:abstract

?

用的最多的是:public

????????????????

????????成员变量:

????????????权限修饰符:private,默认,protected,public????????????

????????????状态修饰符:static 、 final

?

用的最多的是:private

????????????

????????构造方法:

????????????权限修饰符:private,默认,protected,public

????????????

????????????常用的:public

????????

????????成员方法:

????????????权限修饰符:private,默认,protected,public,

????????????状态修饰符:static,final

抽象修饰符:abstract

????????????常用的:public

?

????(3)另外比较常见的:

????????成员变量:public
static
final
int
X = 10;

????????成员方法:public
static
void show() {}

????????????????????public
final
void show() {}

???????? public
abstract
void
show();

?

6. 内部类(理解)
????(1)定义:

把类定义在另一个类的内部,该类就被称为内部类。

????????举例:把类B定义在类A中,类B就被称为内部类。

????(2)内部类的访问规则

????????A:内部类可以直接访问外部类的成员,包括私有

????????B:外部类要想访问内部类成员,必须创建对象

????(3)内部类的分类

????????A:在成员位置定义的类,被称之为成员内部类

????????B:在局部位置定义的类,被称之为局部内部类

????(4)成员内部类

????????A:private 为了数据的安全性

????????B:static 为了访问的方便性

????????

????????成员内部类是非静态的:

????????????外部类名.内部类名 对象名 = new 外部类名.new 内部类名();

????????成员内部类是静态的:

????????????外部类名.内部类名 对象名 = new 外部类名.内部类名();

????(5)成员内部类的面试题(填空)

????????面试题:按照要求天空输出30,20,10

????????注意:

  1. 内部类和外部类之间没有继承关系
  2. 通过外部类名限定this对象

    Outer.this

????????


class Outer {

????public?int?num = 10;

?

????class Inner {

????????public?int?num = 20;

?

????????public?void show() {

????????????int?num = 30;

?

????????????System.out.println(num);// 30

????????????System.out.println(this.num);// 20

????????????System.out.println(Outer.this.num);// 10

????????}

????}

}

?

????(6)局部内部类

局部内部类特点:

  1. 可以直接访问外部类的成员
  2. 在局部位置,可以创建内部类对象,通过对象调用内部类方法,来使用局部内部类功能

面试题:

局部内部类访问局部变量的注意事项?

????????A:局部内部类访问局部变量必须加final修饰。

????????B:为什么呢?

????????????因为局部变量使用完毕就消失,而堆内存的数据并不会立即消失。

????????????所以,堆内存还是用该变量,而改变量已经没有了。

????????????为了让该值还存在,就加final修饰。

????????????通过反编译工具我们看到了,加入final后,堆内存直接存储的是值,而不是变量名。

????(7)匿名内部类(掌握)

????????A:是局部内部类的简化形式

????????B:前提

????????????存在一个类或者接口

这里的类可以是具体类也可以是抽象类

????????C:格式:

????????????new 类名或者接口名() {

????????????????重写方法;

????????????}

????????D:本质:

????????????其实是继承该类或者实现该接口的子类匿名对象

????(8)匿名内部类在开发中的使用

????????我们在开发的时候,会看到抽象类,或者接口作为参数。

????????而这个时候,我们知道实际需要的是一个子类对象。

????????如果该方法仅仅调用一次,我们就可以使用匿名内部类的格式简化。

????????

????????


interface Person {

????public?abstract?void study();

}

?

class PersonDemo {

????public?void method(Person p) {

????????p.study();

????}

}

?

class PersonTest {

????public?static?void main(String[] args) {

????????PersonDemo pd = new PersonDemo();

????????pd.method(new Person() {

????????????public?void study() {

????????????????System.out.println("好好学习,天天向上");

????????????}

????????});

????}

}

?

????????

????(9)匿名内部类的面试题

????????


interface Inter {

????void show();

}

?

class Outer {

????// 补齐代码

????public?static Inter method() {

????????return?new Inter() {

????????????public?void show() {

????????????????System.out.println("HelloWorld");

????????????}

????????};

????}

}

?

class OuterDemo {

????public?static?void main(String[] args) {

????????Outer.method().show(); // "HelloWorld"

????????/*

???????? * 分析: 1. Outer.method() 可以看出method() 应该是 Outer 类中的一个 静态方法 2.

???????? * Outer.method().show() 可以看出 method() 方法的返回值是一 个对象,又由于接口Inter
中有一个

???????? * show() 方法,所以我认 为 method() 方法的返回值类型是一个Inter
接口

???????? *

???????? */

????}

}

?

?

时间: 2024-11-05 23:29:51

javaSE第十天的相关文章

javaSE第十四天

第十四天????92 1. 正则表达式(理解)????92 (1)定义:????92 (2)常见规则????92 A:字符????92 B:字符类????93 C:预定义字符类????93 D:边界匹配器????93 E:Greedy 数量词????93 (3)常见功能:(分别用的是谁呢?)????93 (4)案例????94 A:判断电话号码和邮箱????94 B:按照不同的规则分割数据????95 C:把论坛中的数字替换为*????96 D:获取字符串中由3个字符组成的单词????96 2.

javaSE第十五天

第十五天????117 1. 对象数组(掌握)????117 (1)定义:????117 (2)对象数组的内存图解????117 (3)案例:????117 2. 集合(Collection)(掌握)????119 (1)集合的由来?????119 (2)集合和数组的区别?????119 A:长度区别????119 B:内容区别????119 C:元素内容????119 (3)集合的继承体系结构?????119 (4)Collection的功能概述????120 (5)Collection集合的

javaSE第十六天

第十六天????140 1:List的子类(掌握)????140 (1)List的子类特点????140 (2)ArrayList????141 A:没有特有功能需要学习????141 B:案例????141 a:ArrayList存储字符串并遍历????141 b:ArrayList存储自定义对象并遍历????142 (3)Vector????143 A:有特有功能????143 B:案例????143 a:Vector存储字符串并遍历(与ArrayList案例代码相似)????143 b:V

javaSE第二十四天

第二十四天????363 1:多线程(理解)????363 (1)JDK5以后的Lock锁????363 A:定义????363 B:方法:????364 C:具体应用(以售票程序为例)????364 1,. SellTicket类????364 2,. SellTicketDemo测试类????365 (2)死锁问题的描述和代码体现????365 1. DieLockDemo测试类????365 2. DieLock类(该类继承自Thread)????366 3. MyLock(锁对象类)??

javaSE第二十六天

第二十六天????414 1:网络编程(理解)????414 (1)网络编程:用Java语言实现计算机间数据的信息传递和资源共享????414 (2)网络编程模型????414 (3)网络编程的三要素????414 (4)网络编程中主要类介绍:????416 A:InetAddress: 此类表示互联网协议 (IP) 地址.????416 B:????UDP协议下的Socket对象类DatagramSocket????418 1.发送端:????418 2.接收端:????419 C:????T

javaSE第十九天

第十九天????227 1:异常(理解)????227 (1) 定义????227 a)异常的引入????227 (2)异常的体系????228 (3)异常的处理:????229 A:JVM的默认处理????229 B:自己处理????229 (4)异常知识点代码详解????229 a) 异常处理的方式????229 b) 多个异常的处理????230 c) JDK7异常处理的新方式????233 d) 编译时期异常和运行时期异常的区别????234 e) 异常中的方法详解????235 f)

javaSE第二十五天

第二十五天????399 1:如何让Netbeans的东西Eclipse能访问.????399 2:GUI(了解)????399 (1)用户图形界面????399 (2)两个包:????399 (3)主要方法:????399 A:javax.swing包下的方法????399 B:监听机制的应用????400 (4)GUI的继承体系????400 (5)事件监听机制(理解)????401 (6)适配器模式(理解)????401 案例解释????401 1. UserDao(顶层接口)????40

JavaSE第十四天20160822

I/O流 一.流的分类 1.方向:输入流(读).输出流(写). 2.单位:字节流(操作二进制文件).字符流(操作文本文件). 字节流 字符流 输入流 InputStream Reader 输出流 OutputStream Writer 3.功能:节点流,管道流(处理流) 4.java.io.File类:在JAVA中表示文件或目录 二.输入流与输出流的区别 1.输出流会自动创建文件(无论文件是否存在).输入流不会自动创建文件. 2.输出流有flush()方法,而输入流没有此方法.

JavaSE第十五天20160823

线程 一.JAVA中创建线程的两种方法:          1.继承java.lang.Thread类.          2.实现java.lang.Runnable接口. 3.在JAVA中Thread类实现了Runnable接口,并且Thread类中定义了许多与线程相关的属性与方法. 二.run():线程体,线程将要执行的代码. 三.线程的基本状态 四.线程相关的常用方法 1.sleep(毫秒):使当前线程休眠N毫秒.当线程进入休眠时,线程会进入阻塞状态. 2.线程优先级:线程分为1—10级