运维开发网

Java完善了解释类和对象的原则

运维开发网 https://www.qedev.com 2022-10-14 14:43 出处:网络
面向对象乃是Java语言的核心,是程序设计的思想。Java语言的面向对象技术包括了面向对象和面向过程的基本概念,面向对象的特征,Java语言的类,对象,修饰符,抽象类等一系列的知识点 面向对象、面向过程

面向对象乃是Java语言的核心,是程序设计的思想。Java语言的面向对象技术包括了面向对象和面向过程的基本概念,面向对象的特征,Java语言的类,对象,修饰符,抽象类等一系列的知识点 面向对象、面向过程

什么是课?

什么是对象?

这是两个非常抽象的概念!!!!!!!!

在解释清楚类和对象的概念之前,先说一下什么是面向对象和面向过程,以此来介绍我们的类和对象的概念。

流程化:以洗衣为例:取盆、排水、放衣服、洗衣粉、搓手、换水、拧干衣服。这个过程是面向过程的。

面向对象:以洗衣服为例:人们把衣服放进洗衣机,倒入洗衣粉,洗干净,晾干。他们不需要关心整个洗衣服的过程是如何完成的。他们只需要找到、创建和使用对象。比如我们在使用toString函数的时候,并不关心toString函数的具体实现过程。我们只是把它交给数组来帮助我们实现它,这是面向对象的。

物体从哪里来# 63;对象来源于类,对象之前有类。人,洗衣机,洗衣粉都是单独的一类。当一个类复制一个对象时,我们称之为创建一个对象。所有的对象都创建好之后,每个对象都有一些行为和属性,然后对象之间就可以互相完成了。这是面向对象和面向过程的。

要面向对象,我们必须找到对象,而对象来自于类。阶级从哪里来?我们需要抽象。比如我们都是人,每个人的话都有相同的属性,比如名字,性别,年龄,吃饭睡觉。每个人都会有这些属性,相当于一个模板。通过这个模板,可以生成很多对象,所有这些对象都有这些相同的属性。就是抽象这个人,由这个人创造对象,这个人就是一个类。要真正拥有这样一个人,让他成为一个对象,一个实体,我们需要创造他,通过新来创造他。

定义类class Person{ }//定义一个类,这个类叫Person,类名一定要是大驼峰 class Person{ //类里面包含字段,也叫做属性,也叫做成员变量 //也包含方法 //一个类就是由方法和字段组成的 public String name;//属性 public int age;//属性 //什么是方法?可以解读为这个人的行为 public void eat(){ System.out.println(name+" 正在吃饭"); } public void sleep(){ System.out.println(name+" 正在睡觉"); } }

从类生成对象的过程称为实例化,对象由new关键字实例化。

public class TestDemo { public static void main(String[] args) { Person person//定义一个变量person,此时类Person也相当于类型的意思,和int a = 10,a的类型是int一样 }}

person类定义的变量Person是一个引用变量,这意味着它的初始值可以是null。

public class TestDemo { public static void main(String[] args) { Person person = null; }}

实例化对象

public class TestDemo { public static void main(String[] args) { Person person = new Person();//由类Person实例化了一个对象 }}

一个类可以实例化多个对象。

public class TestDemo { public static void main(String[] args) { Person person = new Person();//由类Person实例化了一个对象 Person person1 = new Person(); Person person2 = new Person(); Person person3 = new Person(); Person person4 = new Person(); }}类的成员

普通成员变量

字段在类的内部方法之外定义。如果是在方法内部定义的,就叫局部变量;如果它是在方法之外定义的,则称为成员变量。

如何访问成员变量?成员变量有两种:(普通成员变量和静态成员变量)。普通成员变量是通过引用访问的。


当成员变量没有初始值时,它们有一个默认值。

如何为成员变量赋值


如果是普通的成员变量,它的内存在对象中,而不是说所有对象共享一个副本。每件物品都有自己的名字和年代。



有两种方法:一种叫普通成员方法,一种叫静态成员方法。

的公共成员方法以同样的方式访问,我的方法通过对象的引用访问。


静态成员变量

被static修改的变量叫做静态成员变量,也叫类变量,放在方法区。

静态成员变量通过类名来访问。静态成员属性/方法。

独立物体

class Person{ public String name; public int age; public static int count; public void eat(){ System.out.println(name+" 正在吃饭"); } public void sleep(){ System.out.println(name+" 正在睡觉"); } } public class TestDemo { public static void main(String[] args) { Person.count++; System.out.println(Person.count); System.out.println("================"); Person.count++; System.out.println(Person.count); }}

打印结果;


Count是由static修改的静态成员变量。它放在方法区,不属于一个对象,但属于一个类。对静态成员变量或方法的正确访问只需要类名。静态成员变量/方法。所有静态的东西都只存储在方法区,所以两次相加就是相加的计数本身,所以第二次打印的结果是2。

普通的方法内部不能够定义静态的变量


1.1.static定义的变量是类变量,属于类,(在方法内部定义是错误的,所以属于方法)

2.2.eat方法的调用需要相应的引用来调用。但是如果可以定义static这个变量,就可以调用Person这个类,所以两者直接矛盾。吃需要相应的引用来调用。Size只能由类调用。所以静态变量不能用普通方法定义。

静态的方法也不可以定义静态变量


static定义的变量是类变量,属于类。(在方法内部定义的时候属于方法,这是不可能的,所以是错的。)

摘要:静态成员变量不能在方法中定义。

静态方法可以在普通方法中调用。

class Person{ public String name; public int age; public static int count; public void eat(){ System.out.println(name+" 正在吃饭"); } public void sleep(){ staticFunc(); System.out.println(name+" 正在睡觉"); } public static void staticFunc(){ System.out.println("static::func"); } } public class TestDemo { public static void main(String[] args) { Person person = new Person(); person.eat(); person.sleep(); }}

打印结果:


不能在静态方法内部调用普通方法。


静态方法不能内部调用,因为静态方法不依赖于对象,可以通过类名调用,但是普通方法没有对象是不能调用的。

main函数为什么是静态的


一个引用不能同时指向多个对象。


引用肯定在栈上吗?不


看绿线,画一画,分析一下。


小写的person属于这个类TestDemo的成员变量。

最终装饰


private实现封装

Private/ public这两个关键字的意思是“访问控制”

public修改的成员变量或成员方法可以被类的调用方直接使用。

由private修改的成员变量或成员方法不能由该类的调用方使用。


提供接口



打印结果:


this代表当前对象的引用


构造方法

构造:方法名和类名相同,构造方法特殊,没有返回值。

施工方法是什么?我们需要知道对象的生成(对象的实例化)分为几个步骤。

1.为对象分配内存。

2.调用适当的构造方法。



这是一种施工方法。

前面的访问修饰符可以是公共的,


调用构造函数:


打印结果:



无参数和单参数及双参数的构造方法


调用构造函数:



this的区别


第一种类型:


第二种类型:


表示当前对象的eat方法。

第三种类型:

调用不带参数的构造函数,



打印结果:


此函数必须放在第一行,并且只能存储在构造函数中。


代码块


本地代码块:

两个括号


示例代码块和静态代码块:


不管生成多少个对象,静态代码块都只会执行一次,而且是先执行。执行完静态代码块后,执行实例代码块(构建块),然后执行构造函数。

太累了,拜拜!!!!!!

这就是这篇关于Java精炼和解释类和对象原理的文章。更多相关的Java类和对象

0

精彩评论

暂无评论...
验证码 换一张
取 消