JavaSE Day5

本节内容

 1.类与对象

 2.创建对象

 3.对象的内存剖析

 4.构造方法

 5.方法

一、类与对象

俗话说的好万物皆对象。

这些都是对象

我们知道Java语言是完全面向对象的语言,也就是说,在Java程序中所有的事物都是对象。

程序是模拟现实生活,那么把一个一个现实生活中的实体如何描述到程序中,在程序中一个对象就是生活中的一个实体。

对象:在程序中如何描述一个实体:通过实体的特征与行为来描述这个实体。

在Java中我们不能直接描述一个实体,那么如何做呢?。。。。。。。。。

Java中有一个概念:类

类:类是对对象的一种抽象描述,也就是说,类其实就是定义对象的一个模板,在这个模板里面充分描述了对象所具有的属性和行为(方法)

也可以说类是一组具有相同属性与行为的对象的抽象。

对象:通过类具体创建出来的实体,就是对象,这些对象是可以拿来使用的,一个类可以创建出任意个相同的对象(也就是一对多关系)。

所以在我们编写代码时,先要编写类,通过class来创建对象。

创建类的关键词:class

package com.xk;
/*
 *作者:吴志龙
 *日期:2018年7月25日  
*/
public class Person {

    
    
}

类是用来描述实体的。。。。。

通过什么来描述实体

属性(特征)(成员变量)

方法(行为) 

来描述

package com.xk;
/*
 *作者:吴志龙
 *日期:2018年7月25日  
*/
public class Person {

          //属性   
    String name;
    
    int  age;
    
    char sex;
     
    
    
}

 方法来描述实体的行为

package com.xk;
/*
 *作者:吴志龙
 *日期:2018年7月25日  
*/
public class Person {
   
    String name;
    
    int  age;
    
    char sex;
    //吃的行为
    public void eat(){
        
    }
    //睡觉
    public void sleep(){
        
    }
     
    
    
}

二、创建对象:

  使用关键词: new

  

    public static void main(String[] args) {
        //创建对象
        Person person =new Person();
        
    }

Java是链式编程:

  通过对象可以使用实体的特征与行为

    public static void main(String[] args) {
        //创建对象
        Person person =new Person();
        //调用属性
        System.out.println(person.name);
        //调用方法
        person.eat();
        
    }
    

三、内存

  Java的内存区域划分:

1.程序计数器:

有了它,字节码解释器才可以知道下一条要执行的字节码指令是哪个。

无论是取下一条指令还是分支、循环、跳转、中断、线程恢复,都需要这个程序计数器。

Java中多线程运行时每个线程都有一个计数器,计数器不能共享。

2.栈区:

存放的是基本数据类型的变量名、以及对象的变量名以及所指向的堆内存的地址。

3.堆区:

用于存放Java对象。

4.方法区:

     1、又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量;

     2、方法区中包含的都是在程序中永远的唯一的元素

5.本地方法区

  ,很多的算法或者一个功能的实现,都被java封装到了本地方法中,程序直接通过调用本地的方法就行了,本地方法栈就是用来存放这种方法的,实现该功能的代码可能是C也可能是C++,反正不一定就是java实现的。

四、构造方法

  构造方法:是用来创建对象的。

  构造方法的语法:访问修饰符 方法名(参数){ }

    public Person(){
        
    }

构造方法要与类名相同,无返回类型,在类初始化的时候调用。

 五、方法

    方法的最大的好处是可以重复使用。

定义:限制条件:在主类中定义,并且由主方法直接调用的方法形式。

方法就是一段可以被重复调用的方法块。在Java中要想进行方法的定义,则可以使用如下的语法完成。

public static 返回类型 方法名称([参数类型 变量, ......]) {
    方法体代码;
    [return [返回值];]
}

在定义方法的时候对于方法的返回值有一下的两类:

  • void:没有返回值;

  • 数据类型(基本类型,引用类型)。

   有参有返回值

public static int add(int x, int y) {   //定义方法
        return x + y;
    }

  有参无返回值

  public static void print(String msg) {  //定义方法
        System.out.print(msg); 
    }

  无参无返回  

    public static void print() {
        System.out.println("Hello   World!"); //定义方法
    }

  无参有返回值 

 

public  void print(){

return  "你好"
}

但是在定义方法的时候有一点特别要注意,如果某一个方法上使用了void定义,那么该方法可以直接用return来结束调用。一般而言,这种return的处理往往需要结合if判断来实现。

方法的重载:(重点)

  方法重载指的是:方法名称相同,参数的类型和个数不同。

  public static int add(int x, int y) {
        return x + y;
    }
    //此时方法名称相同,参数的个数不同
    public static int add(int x, int y, int z) {
        return x + y + z;
    }
    public static double add(double x, double y) {
        return x + y;
    }

在进行方法重载的时候有一个重要的原则:要求方法的返回值类型一定要相同。

  

猜你喜欢

转载自www.cnblogs.com/wuzhilong/p/9367069.html