////////////////////构造函数不能声明为静态。
关于静态与非静态的方法 MainClass.java
class sub
{
String a;
int num;
sub()
{
a = "Hello";
num = 3;
}
}
public class MainClass
{
String t;
sub s;
///这样写没有错误。
MainClass()
{
s = new sub();
t = "hhh";
}
public static void main(String []arg)
{
MainClass mc = new MainClass();
System.out.println(mc.s.a);
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
public class MainClass
{
String t;
sub s;
///这样写有错误。
public static void main(String []arg)
{
s = new sub();
System.out.println(s.a);
}
}
StaticClass.java
////如果这样写那么必须使s成为static变量
///////如果使用static方法则其中使用的变量要么是static的自身类成员,要么是自身类。如果是自身类的话,
////////通过自身类调用的类成员可以不是static
//////////////////纯过程函数一定要加static。(不使用对象的)
class Test
{
int num = 3;
static void show(Test a)/////////////////如果想在main中直接使用函数名得以实现就必须加static
{
System.out.println(a.num);
}
}
////////////如果在main中这样实现:
Test out = new Test();
out.num = 10;
out.show(out); //This is very important!
/////////////////原来的函数可以不使用static关键词
/////////////////////////////////非静态函数必须使用"引用. * "。
/////////////////////////////////静态函数不需加。
////////////////////////////只有类的成员和类的函数前可加static,本地变量不可以加static关键词
//////////////////函数参数列表中即使没有参数也不能加void如show(void). This is wrong.
/////////类中静态变量可以用"类名.静态变量名"代替"引用.静态变量名".//这样更易懂。
////////////////一切都从静态代码开始。
////////////////一个*.java文件先执行public类中的内容:但同样遵循先执行静态类成员缺省赋值,再执行其他的静态代码.
////////////////一个类被导入的时候,其静态成员只能被载入一次.
////////////////静态块和静态类成员变量效果相同(装载时间相同)都是初始化用的.
////////////////一个块和一个静态块效果并不相同.一个块可以使用静态或非静态的变量.但是static块就必须使用static变量.
///////////////否则有可以会出现Compile Error.原因是可能一个类装载的时候先装载静态成员然后才是成员变量.
///////////////这就有可能出现变量未定义的错误.StaticBlock.java
///////////////一个块和static块都可以初始化成员.
///////////////一个static是属于类的而不应该是属于对象的.
///////////////final的方法不能被override.即不能被任何子类改变.TestAAndB.java , TestB.java
///////////////private的方法不能被子类使用.其余的方法均可以被子类所调用.
TestB b = new TestB();
TestAAndB ab = b;
ab.b();////compile error
///////////////即使把子类当成用超类的引用也不能使用这个private方法.
///////////////如果此时b中有b()方法的重写也不能编译通过.
///////////////如果把子类当成超类的引用.那么只能使用超类中的非private方法.当然这些方法可能会被子类超越.
///////////////那么这个引用会自动调用子类的超越后的方法.
分享到:
相关推荐
加密解密:脱壳手记---Themida(2.1.2.0)分享.pdf
架构师手记--14个性化标签系统需求说明.pdf
张俊写的一本关于单片机的书籍,写得很不错,看了可以提高不少。
培训手记-从经营出发培养人才.pdf
同人游戏开发手记-附件(2.2.2-2.2.6) 具体说明见我的博客(http://blog.csdn.net/fosly) 一如既往的骗5个积分, 积分不够的请留个Email, C屌相信总会有不缺分儿的人出现的, 所以坚决不免分
【标题】:“05736 培训师--培训师手记-快乐的课堂.doc” 【描述】:“05736 培训师--培训师手记-快乐的课堂.doc” 【标签】:“资料” 【知识点详解】 在培训领域,创造一个愉快而高效的课堂氛围至关重要。培训...
这篇“Android开发手记--环境配置”主要介绍了如何在Windows XP环境下,利用MyEclipse进行Android开发的初始设置。 首先,你需要下载Android SDK。SDK(Software Development Kit)是Android开发的基础,包含了开发...
Android 开发手记 -- 环境配置 Android 开发手记是基于 Linux 内核的手机系统,使用 MyEclipse + Windows XP 作为开发工具,当然在 Linux 下开发是更好的选择。以下是 Android 开发环境配置的步骤: 第一步:下载 ...
匠人手记-单片机。学习单片机的可以看看,也许会有所启发
通过这种方法,可以将一条复杂的非线性曲线分解成多条线性片段,从而简化计算过程。 **1. 原理概述** 分段线性插值法的核心思想在于将曲线视为多个相连的线段组合而成。对于给定的两个已知点 \((X_1, Y_1)\) 和 \...
网管员成长手记-网络组建、配置与应用.pdf
标题 "Office服务器安装手记--系统安装配置篇" 暗示了本文将深入探讨在服务器环境中安装和配置Microsoft Office或与之相关的服务。在IT领域,这通常涉及到设置Exchange Server(电子邮件服务)、SharePoint(协作...
Oracle DBA手记-数据库诊断案例与内部恢复实践 清晰 无删减
Oracle DBA手记-数据库诊断案例与内部恢复实践 清晰 无删减
Oracle DBA手记-数据库诊断案例与内部恢复实践 清晰 无删减
Oracle DBA手记-数据库诊断案例与内部恢复实践 全本 无删减 高清晰
《匠人手记--一个单片机工作者的实践与思考》是关于单片机应用技术的深度探索,其中包含了作者在工作中的实践经验与深刻见解。本文将围绕标签“手记”,详细解读压缩包中各文件所涵盖的单片机相关知识点。 首先,...
3. **应用**:通过合理选择标定点,可以使得分段线性插值的结果与实际值非常接近,适用于各种非线性系统的建模和仿真。 ### 用普通IO口检测AD值的方法(采集温度) #### 知识点概览 对于不具备内置ADC(模拟数字...
本资料集“同人游戏开发手记-附件(2.2.2-2.2.6)”包含了五个关键章节,分别涉及游戏开发的不同方面,为有志于同人游戏制作的开发者提供了宝贵的学习资源。 首先,章节2.2.2可能涵盖了游戏设计的基础知识,包括游戏...