java里类包含对象对不对_java中的类与对象

初学Java,总结一下Java中的类和对象的相关知识分享给入坑Java的萌新,如有不对之处,还请你们指出。java

类和对象的定义

类:类是一个模板,它用来描述一类对象的行为和状态。类也能够比做一个工厂,用来生产对象,不一样的工厂(类)生产不一样的对象。

对象:对象是一个类的具体实例,有些本身的行为和状态。例如,狗是一个类,哈士奇就是狗这个类的对象。web

类中须要掌握的知识点

1.类中包含的变量类型

类中主要包含类变量、成员变量及局部变量。svg

定义:

局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。(Java中的方法相似于其余语言中的函数)函数

public class Number{ //类名按照规范通常首字母大写,多个单词组成的类名,每一个单词首字母都要大写,例如MyFirstJavaClass

public void printNumber(){ //全部的方法名都应该以小写字母开头。若是方法名含有若干单词,则后面的每一个单词首字母大写

int a; //局部变量

}

}

成员变量:成员变量是定义在类中,方法体以外的变量。这种变量在建立对象的时候实例化。成员变量能够被类中方法、构造方法和特定类的语句块访问。this

public class Number{

int a; //成员变量

public void printNumber(){

}

}

类变量:类变量也声明在类中,方法体以外,但必须声明为static类型。spa

public class Number{

static int a;//类变量

public void printNumber(){

}

}

区别:

成员变量与类变量的区别:

一、两个变量的生命周期不一样code

成员变量随着对象的建立而存在,随着对象的回收而释放。

类变量随着类的加载而存在,随着类的消失而消失。

二、调用方式不一样xml

成员变量只能被对象调用。

类变量能够被对象调用,还能够被类名调用。

三、别名不一样对象

成员变量也称为实例变量。

类变量也称为静态变量。

四、数据存储位置不一样token

成员变量存储在堆内存的对象中,因此也叫对象的特有数据。

类变量数据存储在方法区(共享数据区)的静态区,因此也叫对象的共享数据

成员变量和局部变量的区别:

1.声明位置不一样

成员变量也就是属性,在类中声明的。

局部变量,在方法中声明或代码块中声明。

2.初始值不一样

成员变量若是没有赋值则是有默认值的,数据类型不一样则默认值不一样。

局部变量是没有默认值,也就是说必须先声明,再赋值,最后才使用。

3.在一个类中,局部变量能够与成员变量同名,可是局部变量优先,若是非要访问成员变量的属性,则必须使用 this关键字(示例见构造函数)。

2.构造方法

构造方法定义:构造方法是类里的一个特殊的方法,他不能有返回值(包括void)。所谓构造方法,就是这个类在被实例化时(建立对象时)就要执行的方法,方法名为类的名字,必定要注意构造方法的方法名为类的名字,通常构造方法的目的是为了给类进行一些初始化值。若是没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。在建立一个对象的时候,至少要调用一个构造方法,一个类能够有多个构造方法。在这里举两个例子说明。

public class Dog{

public Dog(){//无参构造方法,注意方法名与类名要相同

}

public Dog(String name){//有参构造方法,建立对象时会根据参数选择不一样的构造方法

}

}

在介绍成员变量与局部变量时,讲到局部变量能够和成员变量重名,可是局部变量优先,若是要访问成员变量,可使用this关键字,举例以下。

public class Dog{

String name;

public Dog(String name){

this.name = name; //this后面的name是成员变量,等号后面的name是构造方法中的局部变量

}

public static void main(String[] args){//主函数

Dog myDog = new Dog("小黑");//建立对象

System.out.println("变量值 : " + myDog.name); //打印Dog类中的成员变量

}

}

输出值:

变量值 : 小黑

3.建立对象

建立一个对象通常须要三步(参考上方示例):

声明:声明一个对象,包括对象名称和对象类型。

实例化:使用关键字new来建立一个对象。

初始化:使用new建立对象时,会调用构造方法初始化对象。

实例

下面举一个完整例子说明如何建立对象。

public class Dog{

String name = "小明";

int age = 1;

public Dog(String name){

System.out.println("名字:" + name);//name为局部变量

}

public Dog(){

System.out.println("名字:" + name);//name为成员变量

}

public Dog(int age){

this.age = age;//将局部变量赋值给成员变量

}

public static void main(String[] args){//主函数

Dog myDog1 = new Dog("小黑");//经过第一个构造方法建立对象

Dog myDog2 = new Dog();//经过第二个构造方法建立对象

Dog myDog3 = new Dog(2);//经过第三个构造方法建立对象

System.out.println("年龄:" + myDog3.age);//调用通过局部变量赋值的成员变量

System.out.println("名字:" + myDog3.name);//调用没有通过局部变量赋值的成员变量

}

}

输出结果:

名字:小黑

名字:小明

年龄:2

名字:小明

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值