`
heimeiyingwang
  • 浏览: 97468 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

corejava辅导(7--1)

阅读更多

Java封装类

 

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

 

intIntegercharCharacter,其余类型首字母大写即成封装类类型名。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();

     }

}

 

分享到:
评论
3 楼 H_eaven 2008-12-08  
内部类做为代码隐藏,能定义为private就不定义为其他的,
static的内部类也不例外.
如果要在外部访问则不可定义为private了.
2 楼 heimeiyingwang 2008-12-08  
netfork 写道

大侠费心了,有没有pdf文件可以提供下载啊?论坛的贴子滚来滚去的,看来极不方便啊。

呵呵,暂时还没有pdf的,等过几天做个电子书就可以让大家下载了,请稍等。
1 楼 netfork 2008-12-03  
大侠费心了,有没有pdf文件可以提供下载啊?
论坛的贴子滚来滚去的,看来极不方便啊。

相关推荐

    很好的一本java辅导资料!

    2. **corejava辅导(1--1)至(5--3)**:这些章节可能逐步介绍了Java语言的基础语法,如变量、数据类型、运算符、控制流程(条件语句、循环)、方法定义和调用、数组的使用以及字符串处理。 3. **corejava辅导(2-...

    Java面试集锦: Core Java Essentials

    整体来看,《Java面试集锦: Core Java Essentials》是一本全面覆盖Java核心技术要点的面试辅导书籍。无论是对于即将参加面试的求职者,还是希望巩固Java基础知识的开发者,本书都提供了丰富的学习材料和面试问题,...

    java知识全集

    **3.2 corejava辅导(1--1)** - **基本数据类型**: 如int、double等。 - **字符串操作**: 字符串的创建和常用操作。 - **数组**: 数组的声明、初始化和遍历。 **3.3 corejava辅导(1--2)** - **循环结构**: for...

    几万的Java上课内容,辅导班弄来的,大家自学的可以看看

    1. Java设计和编程基础:涵盖Core Java编程基础、Java设计原则、算法、模式等核心知识。 2. 数据库和Web前端技术:涉及数据库技术(如Oracle、MySQL、SQL优化和PLSQL开发)、Web前端技术(如H5、CSS3、JavaScript、...

    javaWeb基础技术辅导

    7. **CoreJava辅导资料.zip**:这可能包含Java语言的基础教程或参考资料,包括类、对象、接口、异常处理、集合框架等内容,这些都是JavaWeb开发的基础。 8. **javaWeb基础技术辅导.zip**:这个文件很可能包含了详细...

    javaee请假管理系统文档.docx

    - CPU: Intel Core i5 2.0 GHz - 内存: 2 GB - 硬盘: 250 GB #### 七、测试结果与分析 **测试项目:** 请假管理系统 **测试人员:** 麦城进 **测试结果:** - **系统操作登陆测试:** 用户登录成功后,能够正确跳转...

    数据库代码

    "CoreJava.rar"可能是一个包含Java核心编程资源的压缩文件,Java是一种广泛用于开发数据库应用程序的编程语言。在数据库应用中,Java可以用来编写DAO(数据访问对象)层,实现对数据库的操作,如CRUD(创建、读取、...

    学生请假管理系统_学生请假管理系统_源码.zip

    2. **后端开发**:后端通常基于Java、Python或.NET等语言,利用Spring Boot、Django或ASP.NET Core等框架进行开发。 3. **数据库管理**:MySQL、Oracle或SQL Server等关系型数据库用于存储学生、教师信息以及请假...

Global site tag (gtag.js) - Google Analytics