什么是类? 什么是对象? 类和对象的区别是什么? 如何定义一个类、类
什么是对象?
类和对象的区别是什么?
如何定义一个类、类的属性和方法?
如何创建类的对象?
构造方法有什么作用?
通过构造方法实例化对象的时候有什么特点?
能否使用==进行两个对象的比较? 展开
类的定义:
JAVA中的类是具备某些共同特征的实体的集合,它是一种抽象的概念;
2.用程序设计的语言来说,类是一种抽象的数据类型,它是对所具有相同特征实体的抽象;
3.所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,对象是一种具体的概念。
4.类是对象的集合,对象是类的实例;对象是通过new className产生的,用来调用类的方法;类的构造方法
对象的定义:
在Java中有一句比较流行的话,叫做“万物皆对象”,这是Java语言设计之初的理念之一。要理解什么是对象,需要跟类一起结合起来理解。下面这段话引自《Java编程思想》中的一段原话:
“按照通俗的说法,每个对象都是某个类(class)的一个实例(instance),这里,‘类’就是‘类型’的同义词。”
从这一句话就可以理解到对象的本质,简而 在Java中有一句比较流行的话,叫做“万物皆对象”,这是Java语言设计之初的理念之一。要理解什么是对象,需要跟类一起结合起来理解。下面这段话引自《Java编程思想》中的一段原话:
“按照通俗的说法,每个对象都是某个类(class)的一个实例(instance),这里,‘类’就是‘类型’的同义词。”
从这一句话就可以理解到对象的本质,简而言之,它就是类的实例,比如所有的人统称为“人类”,这里的“人类”就是一个类(物种的一种类型),而具体到每个人,比如张三这个人,它就是对象,就是“人类”的实例。
类和对象区别:
1,类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个体,但它本身不存在于现实世界上。
2,对象是类的一个具体。它是一个实实在在存在的东西。
3,类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。
4,对象是一个动态的概念。每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为。对象的属性可以随着它自己的行为而发生改变。
定义类、方法、属性:
如果是自己写,格式为:
public class 类名{ \\class就是定义类的关键字,注意Java要求类名和文件名一致
变量类型 变量名=初始值;\\定义类的属性
访问修饰符 [static] 方法返回值类型 方法名(参数1的类型 参数1,参数2的类型 参数2...){ \\定义方法,如果是不需要实例化就能使用方法,就加[]里面的
}
}
创建类的对象:
类名 对象名=new 类名() \\如果加了带参数的构造方法,()里面必须传入对应参数的类型
构造方法作用:
构造方法作用就是对类进行初始化。 如果你没有定议任何构造方法的形式,程式会为你取一个不带任何参数的构造函数,那么你产生类的对像时只能用不带参数的方法。
通过构造方法实例化对象的时候的特点:
如果不添加带参数的构造方法,那么默认只能使用无参数的构造方法,如果加了带参数的构造方法,而没有添加无参数的构造方法,则只能使用带参数的构造方法
能否使用==进行两个对象的比较?
这个答案是肯定的
将具有相同属性及相同行为的一组对象称为类。广义地讲,具有共同性质的事物的集合就称为类。
在面向对象程序设计中,类是一个独立的单位,它有一个类名,其内部包括成员变量,用于描述对象的属性;还包括类的成员方法,用于描述对象的行为。在 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