面向对象(三)

简介: 面向对象细节内容

构造方法

  • 作用:用于对对象的数据进行初始化
  • 格式:

    • A:方法名和类名相同
    • B:没有返回值类型,连void都不能有
    • C:没有返回值
  • 思考题:构造方法中可不可以有return语句呢?

    • 可以。而是我们写成这个样子就oK了:return; 其实,在任何的void类型的方法的最后你都可以写上:return;
  • 构造方法的注意事项

    • A:如果我们没写构造方法,系统将提供一个默认的无参构造方法
    • B:如果我们给出了构造方法,系统将不再提供默认构造方法 如果这个时候,我们要使用无参构造方法,就必须自己给出。 推荐:永远手动自己给出无参构造方法。
  • 给成员变量赋值的方式

    • A:setxxx()
    • B:带参构造方法
  • 标准案例
class Student{
    private String name;
    private int age;
     
    public Student(){}
    
    public Student (String name,int age){
        this.name = name;
        this.name = age;
    }
    
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name = name;
    }
    public int getAge(){
        return age;
    }
    public void setAge(int age){
        this.age = age;
    }

}

//测试
class StudentDemo{
    public static void main(String [] args){
        //方式1
        Student s1 = new Student();
        s1.setName("武松");
        s1.setAge(25);
        System.out.println(s1.getName()+"--"+s1.getAge());
        
        //方式2
        Student s2 = new Student("武松",25);
         System.out.println(s2.getName()+"--"+s2.getAge());
    }    
}

代码:Student s = new Student();做了哪些事情?

  • 把Student.class文件加载到内存
  • 在栈内存为s开辟空间
  • 在堆内存为学生对象申请空间
  • 给学生的成员变量进行默认初始化。null,0
  • 给学生的成员变量进行显示初始化。武松,25
  • 通过构造方法给成员变量进行初始化。武松,25
  • 对象构造完毕,把地址赋值给s变量

static关键字

1.静态的意思。可以修饰成员变量和成员方法。

2.静态的特点:

​ A:随着类的加载而加载

​ B:优先与对象存在

​ C:被类的所有对象共享 这其实也是我们判断该不该使用静态的依据。

​ D:可以通过类名调用 既可以通过对象名调用,也可以通过类名调用,建议通过类名调用。

静态的内存图 静态的内容在方法区的静态区 (暂定

3.静态的注意事项:

​ A:在静态方法中没有this对象

​ B:静态只能访问静态

静态变量和成员变量的区别

A:所属不同

​ 静态变量:属于类,类变量

​ 成员变量:属于对象,对象变量,实例变量

B:内存位置不同

​ 静态变量:方法区的静态区

​ 成员变量:堆内存

C:生命周期不同

​ 静态变量:静态变量是随着类的加载而加载,随着类的消失而消失

​ 成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失

D:调用不同

​ 静态变量:可以通过对象名调用,也可以通过类名调用

​ 成员变量:只能通过对象名调用

main方法是静态的

  • public:权限最大
  • static:不用创建对象调用
  • void:返回值给vm没有意义
  • main:就是一个常见的名称。
  • String[] args:可以接收数据,

    • 不管接受什么都是当做字符串类型
    • 提供程序的灵活性 格式:java MainDemo hello world java

      ​ java MainDemo 10 20 30

相关文章
|
7月前
|
设计模式 Java C#
浅谈面向对象
浅谈面向对象
|
6月前
面向对象《一》
面向对象《一》
17 0
|
7月前
|
Python
面向对象
面向对象。
36 0
|
9月前
再次认识面向对象
再次认识面向对象
32 0
|
9月前
到底什么是面向对象。
到底什么是面向对象。
22 0
|
11月前
|
存储 Java 编译器
初步认识面向对象
初步认识面向对象
|
11月前
|
存储 搜索推荐 编译器
C++ 面向对象篇
C++程序在执行时,将内存大致分为四个区域; - 代码区:存放函数体的二进制代码,操作由系统管理 - 全局区:存放全局变量和静态变量以及常量 - 栈区:由编译器自动分配释放,存放函数的参数值(形参),局部变量等 - 堆区:由程序员分配和释放,若程序员不手动释放,系统在程序结束时自动回收
133 0
面向对象-其他
类属性只能通过类对象修改,不能通过实例对象修改,如果通过实例对象修改类属性,表示是创建了一个实例属性。
|
Java
2. 面向对象
面向过程,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求。
121 1