ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

开始——面向对象_对象

2022-01-23 00:00:03  阅读:177  来源: 互联网

标签:Java 对象 开始 Houyi 面向对象 houyi 方法


面向对象和面向过程的区别

  • 面向过程 :面向过程性能比面向对象高。 因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展。
  • 面向对象 :面向对象易维护、易复用、易扩展。 因为面向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,面向对象性能比面向过程低。

面向对象的三个特征:继承、封装、多态.

Java呢是一门面向对象语言。有以下基本概念:多态、继承、封装、抽象、类、对象、实例、方法、重载、接口等

成员变量的初始值:引用类型 null


 

初学了解即可,后期必学底层,自己找书看,我也不会。

Java程序运行时,必须经过编译和运行两个步骤。首先将后缀名为Java的源文件进行编译,最终生成后缀名为.class的字节码文件。然后Java虚拟机将字节码文件进行解释执行,并将结果显示出来。

具体步骤写下来。

1、编写一个 Hello world.Java的文件。

2、使用“Javac Hello world.Java”命令开启Java编译器并进行编译。编译结束后,会自动生成一个Hello World. class的字节码文件

3、使用“ Java Hello world”命令启动Java虚拟机运行程序,Java虚拟机首先将编译好的字节码文件加载到内存,这个过程被称为类加载,它是由类加载器完成的,然后虚拟针对加都到内在中的Java类进行解释执行,便可看到运行结果。

通过上面的分析不难发现,Java程序是由虚拟机(JVM)负责解释执行的,而并非操作系统。


什么是对象呢?

对象 ==>类 ==> 方法 ==》成员变量

对象==》全局变量 ==>类 ==> 方法 ==》成员变量

 对象:

一个文件就是一个对象,就相当于我创建了一个文件,叫王者荣耀.java  当然不能用中文名称,这里是方便分辨。

类(class):

类就是给对象分类,如:王者荣耀里有什么英雄,一个英雄为一个类,可以有多个类多个英雄,每个类里又有方法

方法:

方法就是来写如何实现功能的,如攻击方式、长啥样

成员变量:

变量是来给方法用的,就相对,移速、攻击力、防御力的值


类与对象的定义和使用:

class 类名称 {
    属性 (变量) ;
    行为 (方法) ; 
}

1、首先定义类、属性、方法

类的命名格式,建议是开头是大写的!

class Houyi{
    String Name;
    int GongJiLi;
    int FangYuLi;
    public void cesi() { // 没有static
        System.out.println("姓名:" + Name + ",攻击力:" + GongJiLi + "防御力" + FangYuLi ) ;
    }

类定义完成之后,肯定无法直接使用。如果要使用,必须依靠对象

然后需要先在main方法里实例化对象出来才能使用

切记,一个java程序只能有一个main方法名;

格式:声明并实例化对象

类名称 对象名称 = new 类名称 () ;

Houyi houyi = new Houyi();

这种写法,包含了声明对象和实例化对象;

也可以分开写

Houyi houyi = null;//声明对象

houyi = new Houyi () ;//实例化对象

当只声明对象时,编译器会报错,编译不会报错,执行会报错

Exception in thread "main" java.lang.NullPointerException

空指针异常

当一个实例化对象产生之后,可以按照如下的方式进行类的操作:

对象.属性名:表示调用类之中的属性;

houyi.Name = "后裔";
houyi.GongJiLi = 20;
houyi.FangYuLi = 30;


对象.方法名():表示调用类之中的方法。   

houyi.cesi();

对象 点一下 可以调用属性和方法
 

这样就写好了一个对象

package com.company;

public class demo {
    public static void main(String[] args) {
        //实例化对象
        Houyi houyi = new Houyi();

        //给成员变量赋值
        houyi.Name = "后裔";
        houyi.GongJiLi = 20;
        houyi.FangYuLi = 30;

        //调用方法
        houyi.cesi();

    }

}
//后裔这个类
class Houyi{
    String Name;
    int GongJiLi;
    int FangYuLi;
    public void cesi() { // 没有static
        System.out.println("姓名:" + Name + ",攻击力:" + GongJiLi + ",防御力" + FangYuLi ) ;
    }
}


初学了解即可,后期dddd

从内存的角度来看:

        堆内存: 保存对象的属性内容。堆内存需要用new关键字来分配空间

        栈内存:保存的是堆内存的地址,也就是属性名

任何情况下,只要看见关键字new,表示要分配新的堆内存空间,一旦堆内存空间分配了,里面就会有类中定义的属性,并且属性内容都是其对应数据类型的默认值。


 对象呢又分为 静态对象(static)和非静态对象、匿名对象

静态对象:在当前文件下操作,可以直接调用,当然也可以实例化出来,

而且成员变量和方法是唯一的

public static void main(String[] args){

}

非静态对象

public void Demo(){

}

匿名对象:没有名字的对象

new 对象名 ( ). 方法名 ( );

当方法只调用一次的时候可以使用匿名对象,也可以多次,但浪费资源

可以调用成员变量并赋值,但赋值没有意义,可以当做参数进行传递,但无法在传递参数之前做其他事情

修饰符  属性    数据类型   名称( 形参 )

详细的看后面关于方法的笔记

标签:Java,对象,开始,Houyi,面向对象,houyi,方法
来源: https://blog.csdn.net/q2530058796/article/details/122645068

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有