- 浏览: 548901 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
coosummer:
推荐使用http://buttoncssgenerator.c ...
【转载】CSS圆角按钮(一) -
saiarmuluo:
不错,支持。
java log4j日志 写入数据库 -
springdata_springmvc:
spring mvc demo教程源代码下载,地址:http: ...
Freemarker 使用 -
zlbdexiaohao:
棒棒的
flex ToolTip汇总 -
hw_128:
demo的代码的,能不能发一下,谢谢 qq257515270 ...
java log4j日志 写入数据库
public class Test {
public String demo="qw4rqwer";
public void changValue()
{
this.demo=" hello word";
}
class DemoOuterclass
{
public DemoOuterclass()
{
changValue();
}
}
public static void main(String[] args) {
Test t=new Test();
System.err.println("demo1"+t.demo);
Test.DemoOuterclassdemo=t.new DemoOuterclass();
System.err.println("demo2"+t.demo);
}
public String getDemo() {
return demo;
}
public void setDemo(String demo) {
this.demo = demo;
}
}
============总结=========
1.内部类可以声明为private或protected,可以声明为static
2. 内部类中可以直接访问外部类的方法。
3. 内部类中可以直接访问外部类的数据成员
4.
在外部类的静态方法中创建内部类对象,必须采用“外部类名.内部类名”的形式指定对象的类型,并且非静态内部类的对象必须通过外部类对象来创建。如:
public static void main(String[] args) {
Test t=new Test();
System.err.println("demo1"+t.demo);
Test.DemoOuterclassdemo=t.new DemoOuterclass();
System.err.println("demo2"+t.demo);
}
5. 不能通过外部类对象访问内部类成员
6. 不能通过内部类对象访问外部类成员
7. 静态内部类对象可以直接采用“外部类名.内部类名”形式创建
Test.DemoOuterclassdemo=t.new DemoOuterclass();
8. 私有内部类无法通过第4条创建
java 中的内部类和匿名内部类
1、内部类分为成员内部类、静态嵌套类、方法内部类、匿名内部类。
几种内部类的共性:
A、内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类命和$符号。
B、内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的。
2、成员内部类:形式如下
class Outer {
class Inner{}
}
编译上述代码会产生两个文件:Outer.class和Outer$Inner.class。
3、方法内部类。
顾名思义,把类放在方法内。
class Outer {
public void doSomething(){
class Inner{
public void seeOuter(){
}
}
}
}
A、方法内部类只能在定义该内部类的方法内实例化,不可以在此方法外对其实例化。
B、方法内部类对象不能使用该内部类所在方法的非final局部变量。
因为方法的局部变量位于栈上,只存在于该方法的生命期内。当一个方法结束,其栈结构被删除,局部变量成为历史。但是该方法结束之后,
在方法内创建的内部类对象可能仍然存在于堆中!例如,如果对它的引用被传递到其他某些代码,并存储在一个成员变量内。
正因为不能保证局部变量的存活期和方法内部类对象的一样长,所以内部类对象不能使用它们。
下面是完整的例子:
class Outer {
public void doSomething(){
final int a =10;
class Inner{
public void seeOuter(){
System.out.println(a);
}
}
Inner in = new Inner();
in.seeOuter();
}
public static void main(String[] args) {
Outer out = new Outer();
out.doSomething();
}
}
4、匿名内部类。
顾名思义,没有名字的内部类。表面上看起来它们似乎有名字,实际那不是它们的名字。
A、继承式的匿名内部类。
class Car {
public void drive(){
System.out.println("Driving a car!");
}
}
class Test{
public static void main(String[] args) {
Car car = new Car(){
public void drive(){
System.out.println("Driving another car!");
}
};
car.drive();
}
}
结果输出了:Driving another car! Car引用变量不是引用Car对象,而是Car匿名子类的对象。
B、接口式的匿名内部类。
interface Vehicle {
public void drive();
}
class Test{
public static void main(String[] args) {
Vehicle v = new Vehicle(){
public void drive(){
System.out.println("Driving a car!");
}
};
v.drive();
}
}
上面的代码很怪,好像是在实例化一个接口。事实并非如此,接口式的匿名内部类是实现了一个接口的匿名类。而且只能实现一个接口。
C、参数式的匿名内部类。
class Bar{
void doStuff(Foo f){}
}
interface Foo{
void foo();
}
class Test{
static void go(){
Bar b = new Bar();
b.doStuff(new Foo(){
public void foo(){
System.out.println("foofy");
}
});
}
}
5、静态嵌套类。
从技术上讲,静态嵌套类不属于内部类。因为内部类与外部类共享一种特殊关系,更确切地说是对实例的共享关系。而静态嵌套类则没有上述关系。它只是位置在另一个类的内部,因此也被称为顶级嵌套类。
详细内容请见:http://hi.baidu.com/honglin_bd/blog/item/fa60c4d3866f972933fa1c87.html
参考资料:http://hi.baidu.com/honglin_bd/blog/item/fa60c4d3866f972933fa1c87.html
发表评论
-
【转】java中volatile关键字的含义
2013-05-12 16:06 1008用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A ... -
java 收集
2012-10-22 09:16 0OpenSessionInViewFilter在查询完之后不提 ... -
java连接sql时候,获取表格各列属性
2012-10-19 18:09 0import java.sql.Connection; ... -
【转载】log4j 日志大小
2012-03-23 19:31 10661今天群里一个哥们问一 ... -
spring bean 自定义作用域
2012-02-18 15:02 4336一般都知道spring2.x bean的作用域 Bean ... -
【转】java获取jar文件位置
2012-02-16 21:04 2038网络转载 在编程的时候如果在工程中无意中导入多个同样的jar ... -
java 逐位运算符
2012-01-22 16:53 4545运算符归类: 一元运算符:逻辑运算符(!),非运算符( ... -
hibernate hql
2011-12-15 20:05 0hibernate -hql 1.hql中最简单的查询 f ... -
Hibernate初探(二)
2011-12-15 16:32 38hql 关联查询fetch hql code: from Te ... -
hibernate 复合主键
2011-11-01 19:30 1361hibernate 复合主键 在实体中可以定义一个嵌入式组件( ... -
28234行的java 类文件
2011-08-29 16:04 937有图为证:28234行的java 类文件 各位有没有???见过 ... -
递归显示文件夹下文件
2011-08-10 14:43 920public static void main(String[ ... -
java.lang.UnsupportedClassVersionError异常解决办法
2011-06-14 14:32 1531出现错误的原因: 是因为我们使用高版本的JDK编译的Java ... -
java log4j日志 写入数据库
2011-06-01 20:57 11306因一个群朋友log4j日志 ... -
eclipse改图片
2011-05-14 08:44 1234例如:eclipse目录在 D:\rd\eclipse3.3 ... -
【转载】<s:doubleselect>标签的使用
2011-01-05 08:49 5499本文装载自:http://karidyang.iteye.co ... -
spirng2.x-入门
2011-01-04 09:50 957Spring 2.5 中除了提供 @Component 注释外 ... -
自定义 StringUtil 处理类
2011-01-04 09:41 1187isNumber //判读是不是数字 isDate//判读 ... -
Hibernate学习笔记--Criteria Query
2011-01-04 09:20 9198Criteria Query通过面向对 ... -
struts2 页面国际化
2010-12-29 15:24 1100//输出配置文件中的属性<s:text name=&qu ...
相关推荐
利用自定义数据可以把单个的私有成员打包,然后将外部变量的地址指向类内部的私有成员数据地址,就可以实现修改外部变量的同时,类内部的私有成员数据也发生了变化。从而实现了类内部私有成员的数据可以直接操作的...
利用自定义数据可以把单个的私有成员打包,然后将外部变量的地址指向类内部的私有成员数据地址,就可以实现修改外部变量的同时,类内部的私有成员数据也发生了变化。从而实现了类内部私有成员的数据可以直接操作的...
1、首先是如何给你定义的变量拿到数据: 这里我自己用的是vuex: 首先在你项目的src文件夹下创建这么一个目录: 之后就要在index.js中将homedatas.js(拿数据的js)共享出去,使页面能拿到数据, ...
在C++中,通过COM接口,我们可以访问和操作系统的底层功能,如修改文件属性。MFC是微软提供的C++库,它简化了Windows应用程序的开发,包括对COM的支持。 在"基础修改"部分,我们将学习如何使用C++和MFC来直接操作...
此外,为了简化代码,我们可以使用局部内部类来表示圆的属性,如颜色等。 ```java public abstract class Shape { // 抽象方法 public abstract void draw(); } public class Circle extends Shape { // 成员...
标题所述的问题是关于在Windows操作系统中使用MySQL时遇到的一个常见错误:“mysql不是内部或外部命令”。这个错误通常意味着系统无法识别“mysql”这个命令,因为它不在系统的PATH环境变量所包含的目录列表中。下面...
这样的属性对外部代码是不可见的,除非通过类的内部方法访问。在`Dog`类的另一个例子中,`__type`是私有类属性,外部代码无法直接访问。 总结起来,Python中的实例属性和类属性提供了灵活的方式来组织和管理对象的...
类的成员函数(也称为方法)是定义在类内部,用于操作类的属性和执行相关行为的函数。这些函数可以访问类的私有和公有成员,实现了对对象的控制。 8.4 对象成员的引用 在C++中,对象的成员可以通过`.`运算符来访问...
静态内部类不持有对外部类的引用,可以直接通过类名访问,如同普通类一样。 孙鑫老师的"JAVA从入门到精通"教程深入浅出地讲解了这些概念,旨在帮助初学者掌握Java编程的基础。在学习过程中,313.swf可能是一个包含...
公有成员可以在类的外部被访问,而私有成员只能在类的内部访问。如果要从外部访问私有成员,可能需要提供公共的访问接口或使用特殊技巧。 - **方法2**:可能指的是通过接口(Interface)或抽象类(Abstract Class)...
尽管如此,我们仍然可以通过`_V__x`来访问和修改这个私有属性,但这种方法对于外部使用者来说不那么直观,因此降低了误修改的可能性: ```python v._V__x = 4 print(v.x) # 输出:4 ``` 这里需要注意的是,虽然...
但是,非静态内部类的实例必须依附于一个外部类实例,即创建非静态内部类对象时需要一个外部类对象。 6. 权限控制(Access Control) Java提供四种访问控制修饰符:`public`, `protected`, `private` 和默认(包...
利用自定义数据可以把单个的私有成员打包,然后将外部变量的地址指向类内部的私有成员数据地址,就可以实现修改外部变量的同时,类内部的私有成员数据也发生了变化。从而实现了类内部私有成员的数据可以直接操作的...
例如,`Person`类中的`total`变量就是一个类属性,所有`Person`实例共享这个计数器。 3. `final`关键字:`final`用于声明不可变的变量、常量或类。一旦赋值,final变量就不能再次赋值。它也可以用来确保类不能被...
之所以会出现上述错误,主要是因为当控件绑定了 `DataSource` 属性后,其内部的 `Items` 集合会被设置为只读状态,目的是为了确保数据的一致性和完整性。这是因为绑定的数据源(例如 DataTable)通常是外部数据的...
- **私有属性(Private Attributes)**:以两个下划线`__var2`开头的属性是私有属性,在Python中并不是真正的私有,而是弱私有,意味着它们在类内部可以被访问,但在类的外部通常不应直接访问。如果尝试直接访问,...
在Java编程语言中,反射是一种强大的机制,它允许程序在运行时检查类、接口、字段和方法的信息,并且能够动态地调用方法或修改字段值。本文将深入探讨如何通过反射来获取一个类中的所有属性及其对应的值,从而更好地...
在IT领域,尤其是在Java开发中,遇到“javac不是内部或外部命令”的错误是一个常见的问题,这通常意味着系统无法识别javac命令,即Java编译器。本文将深入解析这一问题,并提供详细的解决方案,帮助读者理解和掌握...
### WIN7_ipconfig不是内部或外部命令 #### ipconfig命令问题解析 在Windows 7操作系统中,用户在命令提示符(CMD)界面下输入`ipconfig`命令后遇到错误提示:“ipconfig不是内部或外部命令,也不是可运行的程序或...