欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java基础-类与对象

程序员文章站 2022-04-03 18:04:54
...

目录

第8章 类与对象

1.类与对象的概述

1.1类的编写

1.2对象的创建和使用

1.3类与对象的进阶

2.成员变量与局部变量

3.构造方法

3.1构造方法的特点

3.2方法重载的特点


Java基础-类与对象

1.类与对象的概述

类可以看作是一个模板,是一个抽象的概念。类是由N多个对象抽取出来的具有某类对象的共同的特征和方法的组合体。而对象是一个具体的实例,是客观存在的。

类和对象的关系是:

(1)类是抽象的,是对象的类型;

(2)对象是具体的,是类的具体的实例。

那么先有类还是先有对象呢? 在现实生活中:由N多个对象抽取出像的部分,归纳为类,再由类的特征去认识其他的对象是否属于这个类别。 在编程开发中:先编写类,再由类去创建对象。

1.1类的编写

在Java中编写类的步骤分三步

(1)编写类名,类名要起的有意义,遵循每个单词的首写字母都大写的原则

(2)编写属性,类的属性在起名字的时候,要使用名词,类的属性也称成员变量,遵循变量的命名规则即可

(3)编写方法,对象所具有的行为,遵循方法的定义规则,方法名称遵循变量的命名规则。

【实例1】编写Person类

public class Person {
    String name;//姓名
    int age;//年龄
    String sex;//性别
​
    public void introduce(){
        System.out.println("姓名:"+name+"\t年龄:"+age+"\t性别:"+"sex");
    }
}

1.2对象的创建和使用

对象的创建和使用也分三个步骤:

(1)对象的创建,语法格式为:类名 对象名=new 类名();

(2)为对象的属性赋值,语法格式为:对象名.属性名=值;

(3)调用对象的方法,语法格式为:对象名.方法名(参数列表);

【实例2】对象的创建和使用

    @Test
    public void onePersonTest() {
        //1.想使用一个类,必须创建类的对象
        Person person=new Person();
        //2.对象名.属性
        person.name="张三";
        person.age=20;
        person.sex="男";
        //3.对象.方法名
        person.introduce();
    }

Java基础-类与对象

 

1.3类与对象的进阶

类是模板,通过一个模板可以创建N个对象

【实例3】创建多个对象

@Test
public void twoPersonTest() {
    //1.想使用一个类,必须创建类的对象
     Person person1=new Person();
     //2.对象名.属性
     person1.name="张三";
     person1.age=20;
     person1.sex="男";
     //3.对象.方法名
     person1.introduce();
     //1.想使用一个类,必须创建类的对象
     Person person2=new Person();
     //2.对象名.属性
     person2.name="李四";
     person2.age=23;
     person2.sex="女";
     //3.对象.方法名
     person2.introduce();
}

 

Java基础-类与对象

内存分析图如下:

Java基础-类与对象

 

(1)每个对象的属性是独立的,方法是共享的

(2)栈内存存储基本数据类型的值和引用数据类型的地址。

(3)堆内存存储new出来的对象,即引用数据类型的具体属性值

(4)栈内存存储局部变量,堆内存存储成员变量

2.成员变量与局部变量

成员变量与局部变量的区别有以下几点:

(1)声明的位置不同。 成员变量:类中,即类的属性; 局部变量:方法中、代码块中、方法的形式参数等。

(2)初始值不同。 成员变量:有默认的初始值,所有的引用数据类型默认值是nul,基本数据类型int的 默认值是0, double类型的默认值是0.0, boolean类型的默认值是 false 局部变量:必须赋初始值才能使用,否则出现“变量尚未初始化”的错误。

(3)优先级不同。 当成员变量与局部变量名称相同时,局部变量更具有优先级

【实例4】成员变量与局部变量的优先级

public class Demo {
    int number=20;//成员变量
    public void show(){
        int number=10;//局部变量
        System.out.println("number="+number);
    }
    public void show2() {
        int number=20000;//局部变量
        System.out.println("number="+number);
    }
    public static void main(String[] args) {
        Demo demo=new Demo();
        demo.show();
        demo.show2();
    }
}

 

Java基础-类与对象

3.构造方法

当系统提供的构造方法不能满足只是创建对象的需求时,就可以人为地去编写构造方法。

3.1构造方法的特点

(1)方法的名称与类名相同;

(2)没有任何的返回值,也不可以写void。

构造方法也是方法,既然是方法就可以重载

3.2方法重载的特点

(1)在同一个类中

(2)方法的名称相同;

(3)参数的类型、个数、顺序相同;

(4)与访问权限和返回值类型无关。

【实例5】构造方法的重载

public class Person2 {
    String name;//姓名
    int age;//年龄
    String sex;//性别
    //无参
    public Person2() {
        super();
    }
​
    //1个参数
    public Person2(String name) {
        super();
        this.name = name;
    }
​
    //3个参数
    public Person2(String name, int age, String sex) {
        super();
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
​
    //输出方法
    public void introduce(){
        System.out.println("姓名:"+name+"\t年龄:"+age+"\t性别:"+sex);
    }
}

【实例6】调用构造方法创建对象

//测试构造方法
@Test
public void constructorTest() {
    //调用无参构造方法创建对象p1
    Person2 p1=new Person2();
    p1.introduce();
    //调用一个参数构造方法创建对象p2
    Person2 p2=new Person2("谢大脚");
    p2.introduce();
    //调用三个参数构造方法创建对象p3
    Person2 p3=new Person2("刘能儿",45,"男");
    p3.introduce();
}

 

Java基础-类与对象

【实例7】匿名对象

//测试匿名对象
@Test
    public void AnonymousTest() {
    //创建对象并调用方法,而且方法只能调用一次
    new Person2("刘能儿",45,"男").introduce();
    //创建对象并给属性赋值
    new Person2().name="谢大脚";
}

Java基础-类与对象

 

相关标签: Java基础