编程语言
首页 > 编程语言> > 面向对象程序设计(1)类与对象

面向对象程序设计(1)类与对象

作者:互联网

类与对象

类和对象的联系

类和对象的内存分配机制

###Java的内存结构 * 栈:栈空间用来存放基本数据类型 * 堆:对空间用来存放引用类型(对象、数组) * 方法区:常量池和类加载信息 ###内存分配过程 1. 加载类信息(属性和方法) 2. 在堆中分配空间 3. 对象初始化(默认初始化,显示初始化或者通过构造器初始化) 4. 将地址赋给对象变量p,通过p可以访问这个对象

静态域和静态方法

静态域

可以将域定义为 static,每一个类中只有一个这样的域。即使没有对象,这个静态域也存在。它属于类而不属于任何独立的对象,可以直接通过类来访问这个域。

class Employee{
    private static int nextId = 1;   //静态域
    private int id;

    public Employee(String n, double s) {
        name = n;
        salary = s;
        id = 0;
    }

    public void setId() {
        id = nextId;  //通过静态域来设置id
        nextId++;
    }
}

静态常量

class Hour {
    private static int HOURS = 24;

    public static void main(String[] args) {
        System.out.println(Hour.HOURS);
    }
}

静态方法

静态方法时一种不能向对象实施操作的方法,静态方法没有this参数,静态方法可以访问自身类中的静态域。当一个方法是以下两种情况是应该为设置为静态方法.
1.不需要访问对象状态,参数是显示提供的
2.只需要访问类的静态域

//只访问静态域,接employee
    public static int getNextId() { 
        return nextId;  //return static field
    }

main方法

main方法不对任何对象进行操作,所以main方法是静态方法,一个类只能有一个main方法。通常在类中的main方法是作测试用的,只有与文件名相同的类的main方法才是整个程序的入口

成员方法传参机制

形参是实参的一个拷贝,当执行调用后的方法结束后,形参被销毁。

方法重载

java中允许同一个类中,有多个同名方法的存在,但要求形参列表不一致。通过方法重载我们可以设计一系列作用相似的方法,使它面对不同的输入可以做不同的处理。

重载要求

可变参数

java允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法。就可以通过可变参数实现。

语法

访问修饰符 返回类型 方法名(数据类型.. 形参名){ ... }

//使用可变参数时,num可以当作数组
public int sum(int... nums){
    System.out.println("接收的参数个数="+nums.length;
    intres=0;
    for(inti=0;i<nums.length;i++){
        res+=nums[i];
    }
    return res;
}

细节

构造器

在java中使用构造器构造实例,用构造器与new操作符来构造并初始化对象

构造器的使用

this关键字

在java中,java虚拟机给每一个对象分配this用来代表当前对象。this关键字很好的解决了类内部属性和成员方法参数重名的问题。

Public Person(String name, int age){
    this.name = name
    this.age = age
}

标签:形参,对象,构造,面向对象,参数,程序设计,main,方法
来源: https://www.cnblogs.com/yjh1024/p/16507854.html