package com.itheima;
/**
* 第六题:创建一个包含有private的属性和private方法的类。
* 然后创建一个内部类,它有一个方法可用来修改外部类的属性,
* 并调用外部类的方法。在外部类的另一个方法中,创建此内部类的对象,并且调用它的方法。
*
*
* @author 马超
*/
//创建一个类测试Private修饰符的类
class OutClass1
{
//创建一个私有属性x;
private int x;
//创建一个私有方法
private void method1()
{
//显示这是OutClass1的一个私有方法
System.out.println("这是 外部类OutClass1 中的一个私有方法");
}
//创建一个内部内
class InClass1
{
//定义一个有一个整数形参的方法
public void Setx(int i)
{
//创建一个名为a的OutClass1类的实例对象
OutClass1 a = new OutClass1();
//将形参的值传递给a的x属性
new a.x = i;
//调用外部类的私有无形参方法method1()
a.method1();
}
}
}
//在一个OutClass2外部类中创建OutClass1的内部类InClass1
class OutClass2
{
public ShowOutClass1(int i)
{
//创建OutClass1 的以及内部类InClass一个引用名为a实例对象
OutClass1 a = new OutClass1.InClass1();
//调用a内部类的方法Setx()并将i传递给他
a.Setx(i);
}
}
class Test6
{
public static void main(String[] args)
{
OutClass2 obj1= new OutClass2();
new obj1.ShowOutClass1(3);
}
}
***************************************疑问如下******************************************
1.如何在另一个外部创建内部类,在内存中的执行状态是什么样的?
2.在实际开发中,为什么要创建内部类,内部类可以用哪几种修饰符,分别有什么功用?
3.在内部类中修改外部类的私有属性和在外部内中创一个方法修改私有属性有何不同,请告诉我各自的优点和缺点?
4.这是一个编译错误的程序,哪些地方错了,应该怎样写,出现这样的错误我需要了解哪一部分的java知识?
|