zoukankan      html  css  js  c++  java
  • java 类中的细节

    java 中类:

    类是用于描述统一类型的对象的一个抽象的概念,类中定义了这一类对象所因具有的静态和动态属性。

    举例: 瓶子
    静态: 有一个口、长长的形状-->java类中的成员变量
    动态属性: 可以倒水 -->java类中的方法(函数)

     1 package com.Demo;
     2 import java.lang.*;
     3 
     4 public class Demo {
     5     //成员变量
     6    private int id;
     7    private String name;
     8    
     9     //有参构造方法
    10    Demo(int _id,String _name){
    11        id=_id;
    12        name=_name;
    13    }
    14  
    15     public int getId() {
    16         return id;
    17 }
    18    /*
    19     * 为了考虑安全性,不能修改身份号
    20     * public void setId(int id) {
    21     * this.id = id;
    22 }*/
    23 
    24     public String getName() {
    25         return name;
    26 }
    27 
    28     public void setName(String name) {
    29         this.name = name;
    30 }
    31    /*
    32      * 输出信息
    33     */
    34     public void printInfo() {
    35         System.out.println("学生身份号:"+id);
    36         System.out.println("学生姓名:"+name);
    37     }
    38 
    39    //主函数
    40     public static void main(String[] args) {
    41         Demo tom=new Demo(20,"张三");
    42         Demo john=new Demo(21,"李四");
    43         tom.printInfo();
    44     }
    45    
    46 }
    47     

    代码的详细理解:

    Demo tom=new Demo(20,"张三");

    Demo john=new Demo(21,"李四");

    Demo tom 是局部变量,同时也是引用类型。类的对象tom存放在stack(栈)中

    new Demo(20,"张三")是new出来的东西,存放在heap(堆)中,与此同时new Demo(20,"张三") 会调用有参构造函数 Demo(int _id,String _name)。

    _id,_name也是也是局部变量,但是id,name是"全局变量"!

    _id,_name,tom都是局部变量存放在stack中!

    然而 id,name,new class()存放在heap中!

    此时整句Demo tom=new Demo(20,"张三")执行结束;

    分析内存的变化:

    调用完 Demo tom=new Demo(20,"张三"); 这句语句时,stack中的局部变量(_id,_name)全都消失,但是保留类的对象 tom!

    构造方法问题:

    (1).如果不写构造方法,系统会自动生成默认的构造方法(无参数). 如果有写有参数构造方法,系统不会生成默认的构造方法(无参数).

  • 相关阅读:
    C++ Primer 第五版-1.1
    C++ Primer 第五版笔记-1.0
    TouchID
    正则表达式
    duplicate symbol 错误
    第三方登录
    AFNetWorking
    IOS---通知
    左右点击--日期增减
    Xcode相关设置
  • 原文地址:https://www.cnblogs.com/jllj/p/6403642.html
Copyright © 2011-2022 走看看