java类和对象的联系,区别

来源:互联网 发布:java resultset 行数 编辑:程序博客网 时间:2024/06/05 21:21
1.类
将具有相同属性及相同行为的一组对象称为类。广义地讲,具有共同性质的事物的集合就称为类。
在面向对象程序设计中,类是一个独立的单位,它有一个类名,其内部包括成员变量,用于描述对象的属性;还包括类的成员方法,用于描述对象的行为。在 Java 程 序设计中,类被认为是一种抽象数据类型,这种数据类型,不但包括数据,还包括方法。这大大地扩充了数据类型的概念。
类是一个抽象的概念,要利用类的方式来解决问题,必须用类创建一个实例化的类对象,然后通过类对象去访问类的成员变量,去调用类的成员方法来实现程序的功能。这如同“汽车”本身是一个抽象的概念,只有使用了一辆具体的汽车,才能感受到汽车的功能。
一个类可创建多个类对象,它们具有相同的属性模式,但可以具有不同的属性值。Java 程序为每一个类对象都开辟了内存空间,以便保存各自的属性值。

2.对象
何谓面向对象是什么意思呢?
面向对象程序设计是将人们认识世界过程中普遍采用的思维方法应用到程序设计中。对象是现实世界中存在的事物,它们是有形的,如某个人、某种物品;也可以是无形的,如某项计划、某次商业交易。对象是构成现实世界的一个独立单位,人们对世界的认识,是从分析对象的特征入手的。
对象的特征分为静态特征和动态特征两种。静态的特征指对象的外观、性质、属 性等;动态的特征指对象具有的功能、行为等。客观事物是错综复杂的,但人们总是 从某一目的出发,运用抽象分析的能力,从众多的特征中抽取最具代表性、最能反映 对象本质的若干特征加以详细研究。
人们将对象的静态特征抽象为属性,用数据来描述,在 Java 语言中称之为变量;人们将对象的动态特征抽象为行为,用一组代码来表示,完成对数据的操作,在 Java 语言中称之为方法。一个对象由一组属性和一组对属性进行操作的方法构成。

3.类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。

4.对象是一个动态的概念。每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为。对象的属性可以随着它自己的行为而发生改变。

Java语言是面向对象的程序设计语言,类和对象是面向对象的核心。Java语言提供了对创建类和创建对象简单的语法支持。

Java语言里定义类的简单语法如下:

[修饰符]class类名

{

零个到多个构造器定义..

零个到多个属性…

零个到多个方法…

}

在上面的语法格式中,修饰符可以是public、final,或者完全省略这两个修饰符,类名只要是一个合法的标识符即可,但这仅仅满足的是Java的语法要求;如果从程
序的可读性方面来看,Java类名必须是由一个或多个有意义的单词连缀而成,每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分隔符。

对一个类定义而言,可以包含三种最常见的成员:构造器、属性和方法,三种成员都可以定义零个或多个,如果三种成员都只定义零个,就是定义了一个空类,这没有太大的实际意义。

类里各成员之间的定义顺序没有任何影响,各成员之间可以相互调用,但需要指出的是,static修饰的成员不能访问没有static修饰的成员。
5.如何创建类的对象?
常用的五种方法:

1).使用new关键字
2)使用Class类的newInstance方法
3)使用Constructor类的newInstance方法
4)使用clone方法
5)使用反序列化

6.构造方法有什么作用?
构造方法用于对类的成员变量进行初始化。

方法重载:
普通方法重载:主要是当两个方法的功能相似而参数列表(参数的类型或个数)不同时使用。
构造方法重载:使成员变量具有不同的初值,重载时也要求参数列表不同。

//Ex
public class TestMethod{
int a;
float f;

public TestMethod(){//构造方法初始化
a=10;
f=1.0f;
}

public TestMethod(int a,float f){//构造方法带参的重载
this.a=a;
this.f=f;
}

public void method(int b,float x){//普通方法
//do something……
}

public void method(int m,int n,float y){//普通方法的重载
//do something……
}

public static void main(String args[]){
//主方法测试
}
}

7.构造方法就是与类同名的那个方法,它的作用是可以用来初始化
class Person //人类{
public Person(String n,int a) //构造方法

{
name = n; age = a;
}
private string name;
private int age;
}
static void main(String[] args){
Person p = new Person("张三",14);//这就是作用
}
new一个对象的时候要用到构造函数,例如Hello hello = new
Hello();这时调用的是Hello的无参数构造方法;Hello hello = new
Hello("hi");这个是调用Hello有参数构造方法,在JAVA中如果不写构造方法的话,会默认加上一个无参数的构造方法,但是如果已经有了一个有参数的构造方法,那么无参数的构造方法就不会默认被加上.如果Hello类中已经有了一个有参数的构造方法,这时再使用
Hello hello = new
Hello();来创建对象的时候就会出错,这就是为什么书上要强调写了有参数的构造方法就最好加一个无参数的构造方法.

8.使用 == 进行比较, 该方式比较的是变量是否同时指向一块内存地址,如果是就返回true,否则返回false