java中的this关键字/内部类
来源:互联网 发布:淘宝查询礼服秋冬女装 编辑:程序博客网 时间:2024/06/18 04:51
一、this关键字代表当前对象
this.属性 操作当前对象的属性
this.方法 调用当前对象的方法
二、封装对象的属性的时候,经常会使用this关键字。
三、内部类( Inner Class )就是定义在另外一个类里面的类。与之对应,包含内部类的类被称为外部类。
内部类作用:
1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类
2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据
3. 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便
例://外部类HelloWorldpublic class HelloWorld { // 内部类Inner,类Inner在类HelloWorld的内部 public class Inner { // 内部类的方法public void show() {System.out.println("welcome to China!");}} public static void main(String[] args) { // 创建外部类对象HelloWorld hello = new HelloWorld(); // 创建内部类对象Inner i = hello.new Inner(); // 调用内部类对象的方法i.show();}}
成员内部类:
成员内部类创建与调用:
package com.func;//外部类HelloWorldpublic class HelloWorld{ //外部类的私有属性name private String name1 = "private"; //外部类的成员属性 int age = 20; //成员内部类Innerpublic class Inner{String name2 = "xiao xiao";int age = 40; //内部类中的方法public void show() { System.out.println("外部类中的name:" + name1);System.out.println("外部类中的age:" + HelloWorld.this.age);System.out.println("内部类中的name:" + name2);System.out.println("内部类中的age:" + age);}}public String getName(){ return name1;} //测试成员内部类public static void main(String[] args) { //创建外部类的对象HelloWorld out = new HelloWorld (); //创建内部类的对象Inner inn = out.new Inner(); //调用内部类对象的show方法inn.show();}}
静态内部类:
静态内部类是 static 修饰的内部类,这种内部类的特点是:
1、 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问
2、 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员
3、 创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();
例://外部类public class HelloWorld { // 外部类中的静态变量score private static int score = 84; private static int num = 12; private String name = "JAVA"; // 创建静态内部类public static class SInner { // 内部类中的变量score int score = 91; public void show() {System.out.println("访问外部类中的score:" + HelloWorld.score);System.out.println("访问外部类中的num:" + num); System.out.println("访问外部类非静态name:" + new HelloWorld().name);System.out.println("访问内部类中的score:" + score);}}// 测试静态内部类public static void main(String[] args) {// 直接创建内部类的对象 SInner si = new SInner(); // 调用show方法si.show();}}
方法内部类:
方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用。
由于方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能使用访问控制符和 static 修饰符。
例:
//外部类public class HelloWorld { private String name = "I LOVE YOU"; // 外部类中的show方法 public void show() { // 定义方法内部类class MInner {int score = 83;public int getScore() {return score + 10;}} // 创建方法内部类的对象 MInner min = new MInner(); // 调用内部类的方法int newScore = min.getScore(); System.out.println("姓名:" + name + "\n加分后的成绩:" + newScore);} // 测试方法内部类public static void main(String[] args) { // 创建外部类的对象 HelloWorld mo = new HelloWorld(); // 调用外部类的方法mo.show();}}
阅读全文
0 0
- java中的this关键字/内部类
- Java中的访问修饰符,this关键字,内部类
- Java关键字 this (this.实例成员;this()),以及Android中内部类中的中的this(*.this,ClassName.this)
- java第六节-this关键字,java的内部类
- Java —— this关键字和内部类
- Java精选笔记_面向对象(构造方法、this关键字、static关键字、内部类)
- java 内部类 final关键字
- java中的内部类
- JAVA中的内部类
- java 中的内部类
- java中的内部类
- Java中的内部类
- JAVA 中的内部类
- java中的内部类
- java 中的内部类
- java中的内部类
- Java中的内部类
- java中的内部类
- egret wing3(1)
- QT宏定义指针转换
- 备忘录
- 对称加密与非对称加密
- 【双语】使用ConstraintLayout构建响应式UI(Build a Responsive UI with ConstraintLayout)
- java中的this关键字/内部类
- Android进阶之路
- 给select下拉框赋值,js实现
- 自己收集的skynet教程
- 页面中的label标签本来随着里面字数的增加而增长,我准备设定label标的宽度为固定值,却一直设定不了
- 图解集合LinkedHashMap
- 以太坊不同客户端的定义和用途
- Python函数式编程
- gym/101149/ Right Build 有向spfa