JAVA基础(Java内部类应用实践)
第一个应用,简而言之,可以类似于C语言中的struct,方便,也可以对外隐藏(通过private)。
用容器命名内部类之外的类更合适,以区别Java文件之外的类。
包com . SSS . exam . inner;
Public Class Container 1 {
Private Class Private Params {//Private是用于访问其他外部类的私有类。即其他外部类不能访问
public int id;
公共字符串名称;
}
public class public params {
public int id;
公共字符串名称;
}
/*Examda提示:该方法可以访问私有内部类
* */
public void test params(){
private params = new private params();
params . id = 1;
params . name = " SSS ";
}
/* *
* @ param args
*/
public static void main(String[]args){
container 1 out = new container 1();
//Container1可以访问公共内部类和私有内部类
public params PP = out . new public params();
PP . id = 2;
PP . name = " ss S2 ";
private params params = out . new private params();
params . id = 3;
PP . name = " SSS 3 ";
}
}
其他类访问:
public class just test {
public static void main(string[]args){
container out = new container 1();
//Container1可以访问公共内部类和私有内部类
public params PP = out . new public params();
//编译错误。无法访问私有内部类private params params = out . newprivateparams();
}
}
第二种应用和第三种应用,可以理解为一种情况,只是为了解决不同的问题。
包com . SSS . exam . inner;
*非公共的类在同一个类中定义。不能添加除最终摘要之外的修饰符。
*其修饰符值为0,不在修饰符的定义中。有些人称之为友好修饰符
*这里的User和单独编写一个用户类的区别就在于那个修饰符。编译后的类都是单独存在的。
*/
类用户{
int id;
字符串名称;
}
公共类容器2 {
私有用户user = null
//一个对象可以这样,解决了try catch的问题。
//但是如果是字符串就不行了。问题在于Java中的值和引用的传递。String相当于传递值。
/* *
* @ paramargs
*/
public static void main(string[]args){
/*后台:catch和finally都是一样的,只有try部分不同
*传统方法:try、catch、finally
*
*/
/*
string user =每次都为null
试试{
user = " fby SSS ";
} catch(Exception e){
user = " error。";
}终于{
user += '的工作完成了。";
} */
container 2a c2a = new container 2a();
c2a . new method();
}
/使用内部类的调用方法:
public void new method(){
container common 2c = new container common();
C2C。EXECUTE(new base my method(){
public user domain method(){//必须有返回值,否则一般处理方法不会得到user
/error。不能访问用户变量,必须将其声明为成员变量,user = " fbysss
User = new User();
user . name = " fby SSS ";
system . out . println(user . name);
返回用户;
}
});
System.out.println("老用户是:"+user . name);
}
}
公共处理类:
公共类container 2 common {
public void execute(mymethod mm){
user user = null;
试试{
/通用接口方法,具体代码不一样
user = mm . domy method();
} catch(Exception e){
user . name = " error。";
}终于{
user.name += '的工作完成了。;
system . out . println(user . name);
}
}
}
个性方法接口:
公共接口mymethod {
公共用户domy method();
}
Personality stub类,其目的是被实例化,因为接口不能被实例化。
公共类BaseMyMethod实现MyMethod {
公共用户doMyMethod() {
// TODO自动生成的方法存根
返回null
}
}
0条评论