权限修饰符与内部类

一、包
1.包
包就是对类进行分类管理
com.fruit.manage.add
com.fruit.manage.update
2.包的命名规则
公司域名的倒序
全部小写
多个包之间用.分割
3.一个类中的组成顺序
package -- import -- class
二、权限修饰符
public:         本类 相同包(子父类或无关类)      不同包(子父类)     不同包(无关类)
protected:      本类        相同包(子父类或无关类)      不同包(子父类)    
默认:          本类        相同包(子父类或无关类)     
private:        本类

修饰符总结
修饰符
成员变量
成员方法
构造方法
public
Y
Y
Y
Y
default
Y
Y
Y
Y
protected
 
Y
Y
Y
private
 
Y
Y
Y
abstract
Y
 
Y
 
static
 
Y
Y
 
final
Y
Y
Y
 

三、内部类
1.分类
成员内部类     局部内部类      匿名内部类
2.成员内部类
定义位置:
定义在类中的成员位置

创建对象格式:
外部类名.内部类名 对象名 = new 外部类对象().new 内部类对象();
案例:
public class Test01 {
public static void main(String[] args) {
//创建对象
Person.Heart ph = new Person().new Heart();
ph.jump();
}
}

class Person {
String name = "王五";
class Heart {
String name = "李四";
public void jump() {
String name = "张三";
System.out.println(Person.this.name + "心脏在跳动"); // 王五
System.out.println(this.name + "心脏在跳动"); // 李四
System.out.println(name + "心脏在跳动"); // 张三
}
}
}
3.局部内部类
了解(写在成员方法里的内部类)
4.匿名内部类
abstract class Animal {
public abstract void eat();
//public abstract void sleep();
}

public class Test01 {
public static void main(String[] args) {
/*Animal a = new Animal(){
@Override
public void eat() {
System.out.println("吃饭...");
}

@Override
public void sleep() {
System.out.println("睡觉...");
}
};
a.eat();
a.sleep();*/
new Animal(){
@Override
public void eat() {
System.out.println("吃饭...");
}
}.eat();
}
}


例如:

public class Test {
//成员内部类
    class B {
int b = 7;
}
public static void main(String[] args) {
//局部内部类
class A {
public int i = 5;
}
A a = new A();
System.out.println(a.i);
Test.B b = new Test().new B();
System.out.println(b.b);
//匿名内部类
new C() {
@Override
public void funny() {
System.out.println("it's funny");
}
}.funny();;
}
}

abstract class C {
public abstract void funny();
}




匿名内部类: 创建出来的也是一个对象,类似于匿名对象,只不过这个对象的类体要重写或实现父类或接口的方法
匿名内部类:

new 类名() {
@Override
public 返回值类型  方法名(参数列表){
。。。
}
};
父类名(或接口名)  变量名  =  new 类名() {
@Override
public 返回值类型  方法名(参数列表){
。。。
}
};

匿名对象:
new 类名();
new 类名(参数列表);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这些修饰符在内部类中的访问权限如下: 1. private修饰符:内部类只能在定义它的外部类中被访问。 2. 默认修饰符:内部类可以在定义它的包中的其他类中被访问,但不能在其他包中被访问。 3. protected修饰符:内部类可以被定义它的外部类以及外部类的子类访问。 4. public修饰符:内部类可以被任何类访问。 需要注意的是,访问内部类的方式与访问其他类的方式略有不同。如果内部类是private或默认修饰符,只能在定义它的外部类中创建内部类的对象。如果内部类是protected或public修饰符,可以在任何类中创建内部类的对象。创建内部类对象的语法如下: ``` OuterClass.InnerClass innerObject = outerObject.new InnerClass(); ``` 其中,OuterClass是外部类的名称,InnerClass是内部类的名称,outerObject是一个外部类对象的引用。 ### 回答2: 在内部类中,修饰符可以控制对外部类和内部类成员的访问权限。 首先,private修饰符表示只能在当前类中访问,对于外部类和其他内部类是不可见的。因此,如果内部类成员被private修饰修饰,只能在当前内部类中访问。 其次,default修饰符表示只能在同一包中的其他类中访问。如果内部类成员没有明确指定访问权限修饰符,则默认为default修饰符。这意味着,如果内部类成员是default修饰的,只有在同一包中的其他类才能访问。 另外,protected修饰符表示只能在同一包和子类中访问。如果内部类成员被protected修饰修饰,那么同一包中的其他类以及外部类的子类都能访问。 最后,public修饰符表示对所有类都可见,无论是在同一包中还是不同包中。如果内部类成员被public修饰修饰,所有类都可以直接访问。 总之,在内部类中使用这些修饰符来控制成员的访问权限,可以根据具体需求灵活地控制成员的可见性,增加程序的安全性和可维护性。 ### 回答3: 在内部类中,修饰符的作用与在普通类中的作用并无区别。在内部类中可以使用四种修饰符,包括private、protected、public和default。 private修饰符表示只有在同一个内部类中才可以访问该成员变量或方法。即使是外部类的其他成员也无法访问私有成员。 protected修饰符表示该成员变量或方法在同一个内部类中和与其相关联的外部类或子类中均可以访问。即使是不同包中的其他类也可以通过继承内部类所在的外部类来访问protected成员。 public修饰符表示可以在任何地方都可以访问该成员变量或方法,包括内部类和外部类,以及其他包中的类。 default修饰符(即不加任何修饰符)表示该成员变量或方法仅在同一个包中可见。它在内部类中的作用与在外部类中的作用相同。 总之,修饰符在内部类中的访问权限与在普通类中的访问权限是一致的。不同的修饰符允许在内部类中实现不同的访问控制。灵活使用这些修饰符可以实现对内部类成员的访问限制,从而提高代码的安全性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值