栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

【java笔记】类与对象(定义,创建,使用,标准的类,对象数组)

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【java笔记】类与对象(定义,创建,使用,标准的类,对象数组)

面向对象的特征:

封装,继承,多态

类:一组相关属性(数据成员)和行为(成员方法)的集合。抽象出事物的属性和行为来描述事物。

对象:一类事物的具体体现。

类和对象的关系:

 

 类的定义:

例:定义一个学生类:

public class Student{
  //成员变量 
  String name;//姓名
  int age;//年龄
  //成员方法
  public void eat(){
     System.out.println("吃饭");
  }
  public void sleep(){
     System.out.println("睡觉");
  }
  public void study(){
     System.out.println("学习");  
 }

}

注意事项:
1、成员变量是直接定义在类当中的,在方法外边

2、成员方法不要写static关键字

3、通常情况下,一个类不能直接使用,需要根据类创建一个对象,才能使用

创建对象:

1、导包:

指出需要使用的类,在什么位置

import 包名称.类名称

对于和当前类属于同一个包的情况,可以省略语句不写

2、创建:

类名称 对象名=new 类名称();

Student stu =new Student ( ) ;

3、使用:

使用成员变量:对象名.成员变量名

使用成员方法: 对象名.成员方法名(参数)

  public static void main(String[] args) {
        Student stu=new Student();
        stu.eat();
    }

成员变量不赋值使用默认值,规则和数组一样

改变成员变量的值:
 

  public static void main(String[] args) {
        Student stu=new Student();
        stu.age=101;
        stu.name="lfa";
        System.out.println(stu.age);
        System.out.println(stu.name);
    }


一个对象的内存图:

解释:堆中的方法存放点 的是方法在方法区的地址

 两个对象使用同一个方法的内存图:

解释:同一个不同的对象在堆中地址不同,但是成员方法的地址相同 

两个引用指向同一个对象的内存图

 two是one的引用,两个在堆中的地址相同

对象作为方法的参数:

 内存图:

 类作为方法的返回值:
、

内存图:

成员变量和局部变量的区别:


1、定义的位置:【重点】

局部变量:方法的内部

成员变量:方法的外部,直接写在类当中

2、作用范围不一样【重点】

局部变量:只有方法中才可以使用,出了方法就不能再用

成员变量:整个类全都可以通用

3、默认值不一样【重点】

局部变量: 没有默认值,如果想要使用,必须手动赋值

成员变量: 如果没有赋值,会有默认值,规则和数组一样

4、内存的位置不一样(了解)

局部变量:位于栈内存

成员变量:位于堆内存

5、声明周期不一样(了解)
局部变量:随着方法进栈而诞生,随着方法出栈而消失

成员变量:随着对象创建而诞生,随着对象被垃圾回收而消失

封装性:

封装性在java中的体现

  1、方法就是一种封装 

  2、关键字private也是一种封装

封装就是把细节信息隐藏起来,对于外界不可见

private的使用
public class person{
     private  String name;
     public  void show(){
        System.out.print(name);
      }
     public void setname(String na){
        name=na;
     }
     public String GetName(){

        return name;
     }
}

在定义成员变量前加上private修饰,将该成员保护起来

本类中可以随意访问,但是超出本类范围之外就不能直接访问了

但可以通过成员方法间接访问,如用方法setX初始化X,getX获得X

注意对于获取boolean类型的成员变量,要写成isXxx的形式 

this关键字:

当方法的局部变量和类的成员变量重名时,根据就近原则,优先使用局部变量

如果需要访问本类当中的成员变量,需要使用格式:

this.成员变量名

通过谁调用的方法,谁就是this

构造方法:

转门用来创建对象的方法,当通过关键字new来创建对象时,其实就是在调用构造方法。

格式:public 类名称(参数类型 参数名称)

{方法体}

注意事项:
1、构造方法的名称必须和所在类名称完全一样,就连大小写也要一样

2、构造方法不要写返回值类型,连void都不写

3、构造方法不能有返回值

4、如果没有编写任何构造方法,编译器会有一个默认的构造方法,没有参数和方法体

6、一旦编写了至少一个构造方法,编译器将不会再用默认的构造方法

7、构造方法可以进行重载

public class Student{
   private int age;
   
  public Student(int age){
     this.age=age;
  }
  public Student(){
    System.out.println("执行无参构造方法");  
}

}
public static void main(String[] args){ 
    Student stu1=new Student();//调用无参构造函数
    Student stu2=new Student(10);//调用有参构造函数
}

new 后加的其实就是对象的构造方法

一般使用构造方法对成员变量初始化,但是修改时还是需要用setXxx方法

定义一个标准的类:

1、所以的成员变量都要使用private关键字修饰

2、为每一个成员变量编写一对Getter/Setter方法

3、编写一个无参数的构造方法

4、编写一个全参数的构造方法

快捷键:Fn+Alt+Insert(笔记本右上角)

public class Student {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = 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;
    }
}

对象数组:

定义一个标准person类(String name;   int  age;)

定义一个数组,储存person对象:

person[] array=new person[3];

person one=new person("a",1);

person two=new person("b",2);

person three=new person("c",3);

array[0]=one;

array[1]=two;

array[2]=three;

一旦创建,数组长度不可改变

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/985003.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号