learning java class name. abstract class name of the interface class name as a formal parameter package members modifier anonymous inner class

10.08_ objects (and outlined the role of package keyword) (understanding) for

A:包的概述:	就是文件夹
B:包的作用:   用来解决同一个路径下不能存在同名文件的问题(分类管理)
C:包的划分:
	按照功能 
	按照模块

10.09_ objects (defined and precautions package) for (understanding)

A:定义包的格式
	package 包名;
	多级包用.分开即可
B:定义包的注意事项
	A:package语句必须是程序的第一条可执行的代码
	B:package语句在一个java文件中只能有一个
	C:如果没有package,默认表示无包名
C:案例演示
	包的定义及注意事项

10.11_ object oriented (access between different classes under the package) (Learn)

A:案例演示
	不同包下类之间的访问
		定义两个类:Demo,Test。
			Demo
				求和方法(sum)
			Test
				测试方法(main)

10.12_ objects (Overview and use the import keyword) for (understanding)

A:导包的概述
	不同包下的类之间的访问,我们发现,每次使用不同包下的类的时候,都需要加包的全路径。比较麻烦。这个时候,java就提供了导包的功能
B:导包格式
	import 包名;
	注意:
		这种方式导入是到类的名称。
		虽然可以最后写*,但是不建议。
C:package,import,class有没有顺序关系(面试题)

10.13_ objects (four permission modifier test) (understanding) for

A:案例演示
	四种权限修饰符: private(私有的)  , 默认 , protected(受保护的) , public(公共的) 
B:结论
				本类	同一个包下(子类和无关类)  不同包下(子类) 不同包下(无关类)
	private 	Y		
	默认		   Y	         Y
	protected	 Y		       Y		          Y
	public		 Y		       Y		          Y		          Y

10.14_ object-oriented (class and its common use modifier composition) (understood)

A:修饰符:
	权限修饰符:private,默认的,protected,public
	状态修饰符:static,final 
	抽象修饰符:abstract
B:修饰类的关键字:
	权限修饰符:默认修饰符,public
	状态修饰符:final
	抽象修饰符:abstract
	
	用的最多的就是:public
	
C:修饰成员变量的关键字:
	权限修饰符:private,默认的,protected,public
	状态修饰符:static,final
	
	用的最多的就是:private
	
D:修饰构造方法的关键字:
	权限修饰符:private,默认的,protected,public
	
	用的最多的就是:public
	
E:修饰成员方法的关键字:
	权限修饰符:private,默认的,protected,public
	状态修饰符:static,final
	抽象修饰符:abstract
	
	用的最多的就是:public
	
F:除此以外的组合规则:
	成员变量:public static final 
	成员方法:public static 
	         public abstract
			 public final

10.15_ object-oriented (internal access class overview and characteristics) (understood)

A:内部类概述:	把类定义在其他类的内部,这个类就被称为内部类。
	举例:在类A中定义了一个类B,类B就是内部类。
B:内部类访问特点
	a:内部类可以直接访问外部类的成员,包括私有。
	b:外部类要访问内部类的成员,必须创建对象。
C:案例演示
	内部类极其访问特点

10.16_ object (class classification directly internal member and inner class) faces (understood)

A:按照内部类位置分类
	成员位置:在成员位置定义的类,被称为成员内部类。	
	局部位置:在局部位置定义的类,被称为局部内部类。
B:成员内部类
	如何在测试类中直接访问内部类的成员。
	格式: 	外部类名.内部类名 对象名 = 外部类对象.内部类对象;

10.17_ objects (common modifier and application of internal class members) (understanding) for

A:成员内部类的修饰符:
	private 为了保证数据的安全性
	static 	为了方便访问数据
		注意事项:  a:静态内部类访问的外部类数据必须用静态修饰。
		           b: 成员方法可以是静态的也可以是非静态的
B:成员内部类被静态修饰后的访问方式是:
	格式:	外部类名.内部类名 对象名 = new 外部类名.内部类名();

10.18_ objects (interview questions member inner class) (understanding) for

A:面试题
	要求:使用已知的变量,在控制台输出30,20,10。
	class Outer {
		public int num = 10;
		class Inner {
			public int num = 20;
			public void show() {
				int num = 30;
				System.out.println(?);//30
				System.out.println(??);//20
				System.out.println(???); //10
			}
		}
	}
	class InnerClassTest {
		public static void main(String[] args) {
			Outer.Inner oi = new Outer().new Inner();
			oi.show();
		}	
	}

10.19_ Object Oriented (local internal local variables class problem) (understood)

A: 可以直接访问外部类的成员
B: 可以创建内部类对象,通过对象调用内部类方法,来使用局部内部类功能
C:局部内部类访问局部变量必须用final修饰
   为什么呢?
  	因为局部变量会随着方法的调用完毕而消失,这个时候,局部对象并没有立马从堆内存中消失,还要使用那个变量。
	为了让数据还能继续被使用,就用fianl修饰,这样,在堆内存里面存储的其实是一个常量值。

10.20_ objects (anonymous inner class format and understanding) for the (master)

A:匿名内部类:	就是局部内部类的简化写法。
B:前提:	存在一个类或者接口;这里的类可以是具体类也可以是抽象类。
C:格式:
	new 类名或者接口名(){
		重写方法;
	} ;
D:本质是什么呢?
	是一个继承了该类或者实现了该接口的子类匿名对象。
E:案例演示
	按照要求来一个匿名内部类

10.22_ object-oriented (use anonymous inner classes under development) (master)

A:问题引出
	首先回顾我们曾经讲过的方法的形式参数是引用类型的情况,
	我们知道这里需要一个子类对象。而匿名内部类就是一个子类匿名对象,
	所以,可以使用匿名内部类改进以前的做法。
B:代码如下
	//这里写抽象类,接口都行
	abstract class Person {
		public abstract void show();
	}

	class PersonDemo {
		public void method(Person p) {
			p.show();
		}
	}

	class PersonTest {
		public static void main(String[] args) {
			//如何调用PersonDemo中的method方法呢?
		}
	}

10.23_ object (this keyword anonymous inner class) (understanding) for

A: 面试题
	 interface Inter {
		public static final int a = 23 ;
	}
	
	public class Test {

		public static void main(String[] args) {
			new Inter() {
				public void show() {
				// 这个this表示的是匿名内部类的这个对象
					System.out.println(this.a);
				}
			}.show();
		}
	}

10.25_ object (class defined by the interface) for (extended content)

A: 举例: 电脑类中的内存条接口
B: 定义电脑类,然后在电脑类中定义内存条接口

// 电脑类

class Computer {

// 内存条的接口
private interface Memory {
	
	// 添加一个抽象方法
	public abstract void showMemory(String memory) ;

}

public void appMemory(String memory){
	
	new Memory() {
		public void showMemory(String memory){
			System.out.println("内存为" + memory) ;
		}
	}.showMemory(memory) ;

}

}

// specific class
/ *
private things can not be accessed outside
class MemoryImpl implements Computer.Memory {

// 添加一个方法
public void showMemory(String memory){
	System.out.println("内存为" + memory) ;
}

}
*/

// test class
class InnerInterfaceDemo {

public static void main(String[] args) {
	
	// 匿名内部类的方式
	/*
	私有的东西不能被外界访问
	new Computer.Memory() {
		public void showMemory(String memory){
			System.out.println("内存为" + memory) ;
		}
	}.showMemory("8G") ;
	*/
	
	// 创建Computer的对象
	Computer cp = new Computer() ;

	// 调用appMemory
	cp.appMemory("32G") ;

}

}

Guess you like

Origin blog.csdn.net/haha9417/article/details/93772196