首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >corejava辅导(7--1)

corejava辅导(7--1)

作者头像
紫风
发布2025-10-14 17:10:39
发布2025-10-14 17:10:39
870
举报

Java封装类

Java为每一个简单数据类型提供了一个封装类,每个简单数据类型可以封装成对象类型。

int(Integer)char(Character),其余类型首字母大写即成封装类类型名。double (Double), float(Float),long(Long), short(Short),byte(Byte),boolean(Boolean)

转换字符的方式:

int I=10;

String s=I+” ”;

String s1=String.valueOf(i);

Int I=10;

Interger I_class=new integer(I);

封装类.字符串.基本类型

Interger--------------------(Double(x.toString))--------------->Double

String ---------------------(Integer.valueOf() )---------------->Integer

Integer---------------------(x.toString() )-------------------->String

int-------------------------(100+””)------------------------->String

String----------------------(Integer.parseInt() )--------------->int

Integer---------------------(Integer.intValue() )--------------->int

学会查看java的帮助文档。先要关注使用方法的返回值类型,也就是要获得内容的类型,然后看方法名,JDK中的方法名基本上是见名知义,参数表,看需要什么才可以获得的需要的内容,也要看自己能够提供什么作为参数。

注意:“==”在任何时候都是比较地址,这种比较永远不会被覆盖。

程序员自己编写的类和JDK类是一种合作关系。(因为多态的存在,可能存在我们调用JDK类的情况,也可能存在JDK自动调用我们的类的情况。)

注意:类型转换中Double\Interger\String之间的转换最多。

(注:所有使用内部类的地方都可以不用内部类,但使用内部类可以使程序更加的简洁,便于命名规范和划分层次结构)。

内部类

内部类是指在一个外部类的内部再定义一个类。

*内部类可为静态,可用protectedprivate修饰。(而外部类不可以:顶级类只能使用publicdefault)。

*JAVA文件中没有publie class 可以类名和文件不同名

内部类的分类

成员内部类、

局部内部类、

静态内部类、

匿名内部类(图形是要用到,必须掌握)

成员内部类

四个访问权限修饰符都可以修饰成员内部类

内部类外部类编译时不同的两个类内部类外部类没有任何依赖

内部类是一种编译时语法,在编译时生成各自的字节码文件,内部类外部类没有关系

内部类中可以访问外部类的私有成员

内部类是作为外部类的一个成员存在,与外部类的属性、方法并列

内部类外部类实例变量可以共存

在内部类中访问实例变量this.属性

在内部类访问外部类的实例变量外部类名.this.属性

在外部类的外部访问内部类,使用out.inner.

成员内部类的特点:

1.内部类作为外部类的成员,可以访问外部类的私有成员或属性。(即使将外部类声明为private,但是对于处于其内部的内部类还是可见的。)

2.用内部类定义在外部类中的不可访问的属性。这样就在外部类中实现了比外部类的private还要小的访问权限

注意:内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。

对于一个名为outer的外部类和其内部定义的名为inner的内部类。编译完成后出现outer.classouter$inner.class两类。

3.成员内部类不能含有静态成员。

建立内部类对象时应注意

在外部类的内部可以直接使用inner s=new inner();(因为外部类知道inner是哪个类,所以可以生成对象。)

而在外部类的外部,要生成(new)一个内部类对象,需要首先建立一个外部类对象(外部类可用),然后在生成一个内部类对象。内部类的类名是外部类类名.内部类类名。

例:

public class Test{

     public static void main(String[] args){

         Outer o=new Outer();

Outer.Inner in=o.new Inner();

Outer.Inner in=(new Outer).new Inner();

}

}

class Outer{

     private int a

     class Inner{

         private int b;

         public Inner(){

              this.b=Outer.this.a

         }

     }

     ……

}

静态内部类

注意:前三种内部类与变量类似,所以可以对照参考变量

静态内部类定义在类中,任何方法外,用static class定义。

静态内部类只能访问外部类的静态成员。

静态内部类和成员内部类的区别

创建(new)一个静态内部类不需要外部类成员:这是静态内部类和成员内部类的区别。

静态内部类的对象可以直接生成:

Outer.Inner in=new Outer.Inner();

而不需要通过生成外部类对象来生成。静态内部类成为了一个和外部类平等的类。静态内部类不可定义为private

例:

public class Test{

     public static void main(String[] args){

Outer.Inner in=new Outer.Inner();

}

}

class Outer{

     private static int a

static class Inner{

         private int b;

         public Inner(){

              this.b=Outer.this.a

         }

     }

     ……

}

注意:当类与接口(或者是接口与接口)发生方法命名冲突的时候,此时必须使用内部类来实现。用接口不能完全地实现多继承,用接口配合内部类才能实现真正的多继承。

例子:

对于两个类,拥有相同的方法:

class People

{

  run();

}

interface Machine{

   run();

}

此时有一个robot类:

class Robot extends People implement Machine.

此时run()不可直接实现。

interface Machine

{

     void run();

}

class Person

{

     void run(){System.out.println("run");}

}

class Robot extends Person

{

     private class MachineHeart implements Machine

     {

         public void run(){System.out.println("heart run");}

     }

     public void run(){System.out.println("Robot run");}

     Machine getMachine(){return new MachineHeart();}

}

class Test

{

     public static void main(String[] args)

     {

         Robot robot=new Robot();

         Machine m=robot.getMachine();

         m.run();

         robot.run();

     }

}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档