java类和对象的理解,使用java实现面向对象编程的总结

  java类和对象的理解,使用java实现面向对象编程的总结

  00-1010一、二类是什么?Java的类和C语言的结构异同III。类和类声明的实例化。实例化的对象,成员遵循默认值规则。类的静态属性(静态成员变量)的实例化。构造方法创建构造方法

  00-1010类是面向对象编程实现信息封装的基础。类是用户定义的引用数据类型,也称为类类型。每个类都包含一个数据描述和一组操作数据或传递消息的函数。该类的实例称为对象。

  类的本质是一个引用数据类型,类似于byte、short、int、char、long、float、double等基本数据类型。不同之处在于它是一种复杂的数据类型。因为它的本质是数据类型,不是数据,它不存在于内存中,不能直接操作,只有实例化为对象才变得可操作。

  00-1010我们可以发现Java中的类其实和C语言中的结构非常相似,那么它们之间有什么区别呢?

  1.打包的对象是不同的

  C语言的结构是数据的打包。将一堆概念上相关的数据打包在一起,以便于整体处理。外界可以随意读写这些数据。

  Java对象可以是数据的封装,也可以是责任的封装。

  2.不同的存储位置

  c结构可以存储在堆栈上或堆上。

  Java对象只能存在于堆中

  类00-1010的成员可以包括以下内容:字段、方法、代码块、内部类和接口等。

  可以形象的理解为,类就是一个模板,类的实例化就是通过这个模板来创建对象(一个模板可以创建无数个对象)。

  声明一个类实际上相当于自定义一个新的类型,引用类型。

  00-1010基本形式:

  类名{field(成员变量/属性);方法(成员方法);}

  这里的class是类的关键字。

  类中的元素:属性(在类内部,在方法外部)

  类中的方法:成员方法

  下面的例子:

  public class Dog { public String name;公共int agepublic void bark(){ system . out . println( woof );}}通过上面的代码,这就创建了一个dog类,它有两个属性:名字和年龄,它的行为被称为

  属性前面的public是访问修饰符。

  方法前面没有static。

  00-1010默认规则:0的变体

  特殊:

  类型:空

  布尔值:假

  char:“ u 0000”(空字符)

  

目录

类狗{公共字符串名;公共int age公共布尔型are公共静态int a;public void bark(){ system . out . println( woof );} } public class Practice { public static void main(String[]args){ Dog Dog=new Dog();//实例化一个对象system . out . println(dog . are);//通过访问。}}这里通过new实例化一个对象,通过引用访问成员变量。对象的成员变量,并且通过引用调用普通方法。对象的方法名。

 

  00-1010定义在类内部和方法外部,带有静态修饰。

  代码如下:

  class Dog { public String name公共int age公共布尔型are公共静态int a;//静态属性publicwiddbark(){ system . out . println( woof );}}注意:静态属性仍然遵循默认值规则。

  如何访问:

  你需要知道静态成员变量不属于对象,而是属于类,

  所以我们不能通过对象的引用 . 成员变量去访问,而是 类名 . 静态属性 去访问,静态方法通过类名来访问

  如下:

  

System.out.println(Dog.a);

错误示例:

 

  

System.out.println(dog.a);

访问类的静态属性不需要有对象,直接就可以访问

 

  注意:

   静态属性存在于方法区 不管new多少个对象,静态属性只有一份 静态方法内部不能够访问非静态的数据成员的值,也不能调用非静态方法 静态方法不依赖对象

 

  

四、构造方法

首先我们想想,一个对象时如何产生的?

 

   为对象分配内存 调用合适的构造方法在我们使用new来实例化对象时,构造方法会被自动调用,完成初始化操作

  

 

  

创建构造方法

方法名必须和类名相同 无返回值类型声明 每个类至少存在一个构造方法(没有定义时,系统自动生成一个无参构造)如下代码:

 

  

class Dog { public String name; public int age; public boolean are; public static int a; public Dog() { } public Dog(String name) { this.name = name; } public void bark() { System.out.println("汪汪"); }} public class Practice { public static void main(String[] args) { Dog dog = new Dog("旺财"); System.out.println(dog.name); }}

在这段代码中有Dog这个类,里面共有两个构造方法,一个无参构造,一个有参构造,在通过new创建对象时,使用了有参构造,可以看到打印出来的结果

 

  

 

  所以其实也就能看出来,到底调用哪个构造方法,取决于new时传的参数

  需要注意:

   当类中没有构造方法的时候,系统会自动补一个无参构造方法,但是当你自己写了构造方法的时候,就不会补这个无参构造,若需要用无参构造,就需要自己手动写 构造方法也支持重载

 

  

this

this的作用

 

  在很多情况下,可能都会有人误以为 this 是当前对象,但其实 this 是当前对象的引用

  为什么this不是对象,而是引用:

  我们要知道,构造方法是用来创建对象的,那么在调用构造方法创建对象的过程中,这个对象还是不存在的,哪来的对象之说

  因此我们可以通过this去访问属性、成员方法、构造方法(调用构造方法时,只能放在第一行,只能在构造方法里面写,只能用一次)

  到此这篇关于深入浅出分析Java 类和对象的文章就介绍到这了,更多相关Java 类和对象内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: