Java 类和对象

对象的概念

对象就是类的一个实例,是一个具体的事物,具有属性和方法。

面向对象

面向对象与面向过程对比,面向过程的核心是过程,关注解决问题的步骤,面向对象的核心是对象,就是关心对象由有什么组成,比如造一辆车,面向对象关注的是如何把零件拼凑出一辆车,面向过程关注的是如何把零件从流水线中造出来。面向对象能在宏观上帮助我们确定解决问题的方向,但具体到实现的方法就要用到面向过程。

什么是类

类就像一个模板,是具有相同特征对象的集合。类和对象的关系就像图纸和汽车,图纸就是类,汽车就是对象,我们能根据图纸来造出无数类似的汽车。

什么是对象的属性

对象的属性就是一个事物的相关数值,比如一个苹果,颜色、重量等都是它的属性。

什么是对象的方法

对象的方法就是一个事物要做的事情,比如一个苹果,它的方法就是被吃掉。

如何使用对象

使用对象的步骤

  1. 创建对象
    类名 对象名=new 类名()
    Telphone phone=new Telphone();
    。。↑ 。。。↑。。↑。。。↑。。。
    对象类型,对象,关键字,构造方法
    连起来就是创建一个名称为phone的Telphone类的以Telphone()构造方法初始化的实例化对象
    2.使用对象
    引用对象的属性
    对象名.属性;
    phone.screen=5;

    引用对象的方法
    对象名.方法;
    phone.send();


类名 对象名 创建名称为“对象名”的“类名”类引用变量
new ; 创建一个新对象。
类名() 构造方法; 作用是初始化对象。
new 类名(); 以构造方法(可以添加参数)实例化对象;
类名 对象名=new 类名(); ** 用指针的解释就是以无参数构造方法实例化对象并将这个对象的内存引用**赋给“类名”类的“对象名”引用变量
————————————————
版权声明:本文为CSDN博主「光与影的界限」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44139445/article/details/88538047


成员变量和局部变量

成员变量
在类中定义,描述对象有什么数据。
局部变量
在类的方法中定义,在方法中临时保存数据。


区别
1.作用域不同
成员变量的作用域在整个类内部是可见得。
局部变量的作用域仅限于定义它的方法。
2.初始值不同
java会给成员变量一个初始值 0
java不会给局部变量初始值
3.
在同一个方法中,不可以有同名局部变量。
在不同方法中,可以存在同名局部变量。
4.
成员变量和局部变量同名时,局部变量的优先级更高。

构造方法


构造方法是一种特殊的方法,它是一个与类同名且返回值类型为同名类类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。 构造方法和其他方法一样也可以重载。通过一个类创建一个对象,这个过程叫做实例化 。 实例化是通过调用构造方法实现的 。
————————————————
版权声明:本文为CSDN博主「光与影的界限」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44139445/article/details/88538047


Telphone phone=new Telphone();
1.new +构造方法 创建一个新对象
2.什么是构造方法
构造方法是一个定义在java类中用于初始化对象的方法
(构造方法与类名重名且没有返回值)
构造方法的语法句式
在这里插入图片描述
3.当没有指定的构造方法时,系统会自动添加无参的构造方法。
4.当有指定的构造方法,无论有参、无参的构造方法,系统都不会自动添加无参的构造方法。
5.构造方法的重载,方法名相同,参数不同的方法,调用时会根据不同的参数选择相应的方法。
6.构造方法不但可以给对象初始化赋值,还可以保证给对象的赋值在一个合理值区间。

static使用之静态变量

  • 我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立。然而在某些时候,我们更希望该类所有的对象共享同一个成员。此时就是 static 大显身手的时候了。
  • 静态成员可以使用类名直接访问,也可以使用对象名进行访问。当然,鉴于他作用的特殊性更推荐用类名访问~~

static变量也称作静态变量,静态变量和非静态变量的区别是:

- 静态变量:静态变量被类中所有的对象所共享,它将变量值存储在一个公共的内存地址,因为地址公共,所以如果某个对象修改了静态变量的值,那么同一个类的所有对象都会受到影响。

- 非静态变量:非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

static使用之静态方法

静态变量和方法可以在不创建对象的情况下进行访问。

静态方法与实例方法的区别:

–静态方法:静态方法会随着类的定义而被分配和装载入内存中。静态方法可以调用静态方法以及访问静态数据域,但静态方法不能调用实例方法或者访问实例数据域。

–实例方法:只有在类的对象创建时在对象的内存中才有这个方法的代码段。实例方法可以调用实例方法和静态方法,以及访问实例数据域或者静态数据域。


与静态变量一样,我们也可以使用 static 修饰方法,称为静态方法或类方法。其实之前我们一直写的 main 方法就是静态方法。

使用方法
类名.方法名();

注意事项
1.静态方法可以调用同类中的静态成员,但不能直接调用同类中的非静态成员。
(如果希望在静态方法中调用非静态变量,可以创建类对象,通过对象来访问非静态变量。)
2.在普通成员方法中可以调用同类的静态变量和非静态变量。
3.静态方法中不能直接调用非静态方法,需要通过对象来调用非静态方法。

static使用之静态初始化块

Java 中可以通过初始化块进行数据赋值。
在这里插入图片描述
在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。如果使用 static 修饰初始化块,就称为静态初始化块。

需要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。


我们来看一段代码:
在这里插入图片描述
运行结果:
在这里插入图片描述
通过输出结果,我们可以看到,程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值