`
holoblog
  • 浏览: 1264237 次
博客专栏
E0fcf0b7-6756-3051-9a54-90b4324c9940
SQL Server 20...
浏览量:19540
文章分类
社区版块
存档分类
最新评论

java手记---类

 
阅读更多
一个类的实现:
(1)当装载这个类的时候,实际上是调用的类的static方法或者访问类的static字段的时候,java解释器会搜寻classpath来找到这个类
(2)装载类后,会对static数据进行初始化。
(3)当用new创建一个新对象时,会在堆中为对象分配足够的内存
(4)内存先被清零 ,自动把对象的数据成员赋上缺省值。变量为0或对应的true或'/u0000',引用赋为null
(5)执行定义成员数据的初始化
(6)执行构造函数

////////////////////////////对象就是数据+方法。
方法一 /////////////这样构造类
class person1 /////////////但不能这样声明 public class person1
{///////////////这样写会出错 。
String name;
int age;
}
public class person
{
public static void main(String[] args)/////////main函数的参数必须这样写不能省略args,当然可以使用其他的变量
{person1 test = new person1();
}
}
方法二///////////////////这样也可以
public class person
{String name;
int age;
public static void main(String[] args)
{person test = new person();
}
}
class person //////////////class 前的public 可以不写。
{
public static void main(String[] args)
{
..........................................
}
}
class person1
{
String name;
int age;
void test()
{
in t = new in(); /////////////////////每一次都必须实例化。
t.test1();////////否则编译失败。
System.out.println("person1");
}
class in ///////////////内部类
{
void test1()
{
System.out.println("in");
}
}
}
///////////////////在构造函数中如果要调用其他构造函数,就要把其他的构造函数放在最前面.
///////////////////如果调用自身的构造函数可以这样写:
Flower(String s)
{
System.out.println("String create");
}
Flower(int i)
{
System.out.println("int create");
}
Flower(String s,int i)
{
this(i);////放在最前面
System.out.println("String and int create");
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
但继承的时候
D:/Javaworkspace/test/testNow/Init.java
class SupClass
{
public SupClass(int id)
{
System.out.println(id+"SupClass is construct!");
}
}
public class Init extends SupClass
{
static int i;////////这样写在super(i)处就不会出错。
public Init()
{
super(i);
i=0;
}
}
/////变化一下:
public class Init extends SupClass
{
int i;
public Init()
{
super(i);//这里就会报错。这是因为先初始化static变量,后进行自身类的构造函数调用,后调用基类构造函数,再进行
i=0; //自身类中成员变量的初始化。
}
}
//////////再写一个类
public class ObjOrPri {
SupClass a= new SupClass(i);//这里会报错,这就意味着成员对象是顺序进行的初始化。
int i;

ObjOrPri()
{
System.out.println(a);
}
}
///////////如果改为这样
public class ObjOrPri {
int i;
SupClass a= new SupClass(i);/////这里就不会报错。
ObjOrPri()
{
System.out.println(a);
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
根基类的static先被初始化。然后到子类的构造函数,在到基类的构造函数。

每一个类都有自己的方法。超类的和子类的方法名必须相同。但是超类可以不实现那个方法。
最后在某一个类中用一个函数来用超类的引用当作参数。调用和子类同名的函数叫做多态。
这样做的好处是如果超类和子类都存放在同一个数组里,这样就可以节省代码。
抽象类中不需要每一个方法都是抽象的。但至少有一个。
static和abstract关键字好像不能同时使用。
清除类的时候先从派生类开始,然后才是超类。
如果在构造函数中调用多态,那么将会调用被覆盖的函数。
ClassCastException运行时类型检查异常。
不是后绑定就不是多态。
分享到:
评论

相关推荐

    8种Java Web框架安装手记及HelloWorld

    【Java Web框架详解】 Java Web框架是用于构建Web应用程序的工具集合,它们简化了开发流程,提供了丰富的功能,以及良好的可扩展性和维护性。本文将详细介绍8种流行的Java Web框架,包括Grails、GWT、JSF、Play、...

    大厂真题之菜鸟网络-Java初级.pdf

    - 内部类分为成员内部类(非静态内部类)、静态内部类(静态嵌套类)、局部内部类(在方法或块中定义的类)和匿名内部类。其中,成员内部类需要外部类的实例,而静态内部类可以独立存在,不需要外部类实例。 以上...

    Wicket 1.4 开发手记(一) helloworld与环境配置

    在`src/main/java`目录下创建一个名为`HelloWorldApplication.java`的类,继承自`WicketApplication`。 ```java import org.apache.wicket.Application; import org.apache.wicket.protocol.http.WebApplication; ...

    hibernete2 安装手记

    - 对象/关系映射:将 Java 类映射到关系数据库表。 - 数据持久化:提供对象数据的持久化支持,简化数据存储逻辑。 - 查询与检索:提供高效的数据查询与检索方法,减少手动编写 SQL 代码的需求。 #### 第一部分:...

    热更新方案 - Tinker 手记

    Native方案的核心是替换函数,通过将Java方法属性设置为native,转到JNI层处理,在JNI中将方法指针指向JavaHook,然后在hook中回调其他Java方法。通过这种方式,可以实现Java -> Native -> Java的调用路径,达到修改...

    java开发手册文档

    压缩包中的`prototype.js开发手记.doc`和`prototype.js开发者手册1.4.doc`文件,虽然不是直接关于Java,但Prototype.js是一个流行的JavaScript库,它扩展了JavaScript的基本对象,使得在JavaScript中进行面向对象...

    匠人手记(包括所有的资料很全)

    1. **编程语言**:可能会涵盖常见的编程语言如 Java、Python、C++、JavaScript,以及它们的基础语法、进阶特性、框架和库的使用。 2. **软件开发**:可能包含软件工程的各个阶段,如需求分析、设计、编码、测试和...

    大厂真题之字节跳动-Java初级.pdf

    【Java初级知识点详解】 在Java编程中,理解基础概念和技术是非常关键的。以下是一些重要的Java初级知识点: 1. **锁机制**: - **synchronized**:Java中用于实现线程同步的关键字,可以作用于非静态方法、静态...

    Android开发手记一_NDK编程实例

    ### Android开发手记一_NDK编程实例 #### 一、开发环境的搭建 在开始具体的NDK编程之前,首先需要确保开发环境已经被正确地搭建起来。对于初次接触Android NDK开发的朋友来说,拥有一个良好的环境配置是至关重要的...

    基于Java语言开发的晨昏手记SSM在线日记本设计源码

    该项目是一款基于Java语言的晨昏手记SSM在线日记本设计源码,包含45个文件,其中Java源文件34个,XML配置文件6个,属性文件2个,Git忽略文件1个,Markdown文件1个,以及SQL脚本文件1个。

    TSM Server-Client-TDPO安装配置手记

    【TSM Server-Client-TDPO 安装配置详解】 TSM(Tivoli Storage Manager)是一款由IBM开发的企业级数据保护解决方案,用于管理和备份各种数据。本篇将详细介绍TSM Server、Client以及TDP for Oracle的安装配置过程...

    Ubuntu_10.04_安装手记

    ### Ubuntu 10.04 安装手记详尽知识点 #### 一、环境配置与准备工作 **环境描述:** - **硬件平台:** HP 520 Notebook (T2400/2G RAM) - **操作系统:** 已安装 Windows XP SP3 Home 版本 - **额外准备:** 安装了 ...

    阿里巴巴JAVA开关手册,java编码规范

    《阿里巴巴JAVA开关手册》是Java开发者们不可或缺的参考资料,它详细阐述了阿里巴巴集团内部的Java编程规范,旨在提升代码质量,提高团队协作效率,并培养良好的编程习惯。这本手册不仅适用于阿里巴巴的工程师,也对...

    hibernate 2 安装手记.rar

    设计并实现Java类来代表数据库中的表,使用Hibernate注解或XML映射文件定义它们与数据库表的关系。 8. **编写SessionFactory** 使用`Configuration`类加载配置文件并创建`SessionFactory`实例。`SessionFactory`...

    程序匠人手记网络版全篇

    1. **编程基础**:涵盖各种编程语言的基本语法,如C++、Java、Python和JavaScript等。了解这些语言的基础结构、变量、数据类型、控制结构、函数等概念是编程的基石。 2. **算法与数据结构**:深入探讨了排序算法...

    hibernate安装手记

    Hibernate是一种开源的Java库,它允许开发人员将Java类与数据库表进行映射,通过对象模型进行数据操作,从而避免了SQL的直接编写,提高了开发效率。它的主要功能包括:持久化对象、事务管理、查询语言(HQL)和缓存...

    Jfreechart开发手记(一)

    ### JFreeChart 开发手记(一):完整柱状图及数据下钻实现方法 #### 1. 概述 本文档旨在介绍如何利用开源图表库 JFreeChart 制作一个完整的柱状图,并实现商业智能 (BI) 软件中常见的“数据下钻”功能。通过本...

Global site tag (gtag.js) - Google Analytics