【JAVA入门】面向对象笔记Notes

一、数组

        数组是一种存储多个相同类型数据的线性数据结构。

        在Java中,可以使用new关键字来创建数组,并可以在定义时直接赋值。       

        注意:数组的定义和赋值要在同一行

int[ ]a = new int[19];//创建一个包含19个整数的数组a

/*这里,a是数组的引用变量,它存储了数组在内存中的地址。数组本身存储在堆内存中,而引用变量a则存储在栈内存中。*/

        不能直接对二维数组的第一维进行赋值,如a[][]这样的语法是不正确的。

        正确的做法是先初始化第一维,再对第二维进行初始化。例如:

int[][] a = new int[3][]; // 创建一个3行的不定列数的二维数组  
a[0] = new int[5]; // 为第一行分配5个整数的空间  
a[0][1] = 1; // 给第一行第二列的元素赋值为1

二、面向对象

面向对象编程(OOP)是Java的核心特性之一。

它强调以类为中心,通过类和对象来描述现实世界中的事物和它们之间的关系。

学习目标:

1.理解对象和                           

2.如何定义类和创建类的对象

3.理解并使用构造方法

4.使用UML符号描述类和对象

5.区分对象引用变量和基本类型变量

6.声明带有get方法set方法的私有数据域

7.编写带有参数的方法

8.理解静态变量与实例变量、静态方法与实例方法的区别

9.掌握使用this关键字访问对象自身的方法或属性。

封装性:

        对象属性和行为变为整体;部分信息不透露

        封装是面向对象编程的三大特性之一。它通过将对象的属性和行为封装在一个整体中,隐藏对象的内部状态和实现细节,仅对外提供公共的访问方式(如getter和setter方法),从而保护对象不被外部随意修改,确保数据的完整性和安全性。

        Getter方法

                用于获取私有变量的值。

                这些方法通常没有参数,并且返回一个与私有变量类型相同的值。例如:

public class User {  
    private String password;  
  
    public String getPassword() {  
        return password;  
    }  
}
在这个例子中,getPassword()就是一个getter方法
它返回password私有变量的值。

        Setter方法

                用于设置私有变量的值。这些方法通常有一个参数,用于指定新的值。例如:

public class User {  
    private String password;  
  
    public void setPassword(String newPassword) {  
        this.password = newPassword;  
    }  
}
在这个例子中,setPassword(String newPassword)就是一个setter方法
它接受一个字符串参数newPassword,并将其设置为password私有变量的新值。

继承性:

        类之间的关系,在原有类的基础上进行扩展.

        继承是面向对象编程中的另一个重要特性,它描述了类之间的层次关系。通过继承,一个类(子类或派生类)可以继承另一个类(父类或基类)的属性和方法,从而实现对原有类的扩展和复用。

多态性:

        多态性是面向对象编程的第三个特性,它允许使用父类类型的引用变量来引用子类对象,并在运行时根据对象的实际类型来调用相应的方法。这增强了代码的灵活性和可扩展性。

类的定义:

       类是使用class关键字来定义的。类包含了成员变量(属性)和成员方法(行为)。

class name{

    成员变量;//全局变量

    成员方法;

}

        类名通常采用驼峰命名法,即第二个单词的首字母大写,其余小写。

class Student { // 定义一个名为Student的类  
    String studentName; // 成员变量:姓名  
    int studentAge; // 成员变量:年龄  
    String studentSex; // 成员变量:性别  
  
    void read() { // 成员方法:读书  
        // 方法体  
    }  
      
    // 可以包含其他方法或构造函数等  
}

对象创建与使用

        对象是通过类的构造方法来创建的。首先,我们需要声明一个对象引用变量,并将其初始化为null。然后,使用new关键字调用类的构造方法来创建对象,并将对象的引用赋值给引用变量。例如:

类名 对象名称 = null;//声明

对象名称 = new 类名();//创建

Student stu1 = null; // 声明一个Student类型的引用变量stu1并初始化为null  
stu1 = new Student(); // 创建Student对象并将引用赋值给stu1

//其实也可以直接

Student stu2 = new Student();

类似C的结构体,在栈内存开辟stu1,stu2的内存空间,”小明“、”李华“存至堆。

class Student{
    String name;//声明姓名属性
    void read(){
        System.out.println("大家好,我是"+name);
    }
}
public class Example01{
    public static void main(String[] args){
        Student stu1 = new Student();//创建第一个Student对象
        Student stu2 = new Student();//创建第二个Student对象
        stu1.name = "小明";//给stu1对象的name属性赋值
        stu1.read();//调用stu1对象的方法read
        stu2.name = "李华";//给stu2对象的name属性赋值
        stu2.read();//调用stu2对象的方法read
    }
}

访问控制权限:

        Java提供了四种访问控制权限修饰符

        它们按照访问权限从小到大依次为:private-default-protected-public

        这些修饰符用于控制类、方法和变量的访问范围,从而保护代码的安全性和封装性。

构造方法:

方法名(){  }

        构造方法是类中的一个特殊方法,用于初始化对象的状态。

        构造方法的名称必须与类名相同,且没有返回类型。

        当创建对象时,构造方法会被自动调用

class Student {  
    String name;  
    int age;  
      
    // 构造方法  
    public Student(String name, int age) {  
        this.name = name; // 使用this关键字引用当前对象的属性  
        this.age = age;  
    }  
      
    // 其他方法...  
}

重载:

同一类用多个同名方法,参数列表(个数,类型,顺序不同)

重载(Overloading)是Java中面向对象编程的一个重要概念,它允许在同一个类中定义多个同名的方法,但每个方法的参数列表(包括参数的个数、类型或顺序)必须不同

这样,当调用方法时,Java会根据提供的参数来匹配并调用相应的方法。

重载的方法必须有不同的参数列表,以便编译器能够区分应该调用哪个方法。这增加了代码的灵活性和可读性,因为它允许我们使用相同的方法名来执行不同的操作,只要这些操作接受的参数不同。

public class Calculator {  
    // 重载的add方法,接受两个整数参数  
    public int add(int a, int b) {  
        return a + b;  
    }  
      
    // 重载的add方法,接受两个浮点数参数  
    public double add(double a, double b) {  
        return a + b;  
    }  
      
    // 重载的add方法,接受三个整数参数  
    public int add(int a, int b, int c) {  
        return a + b + c;  
    }  
      
    public static void main(String[] args) {  
        Calculator calc = new Calculator();  
          
        // 调用接受两个整数参数的方法  
        int sumInts = calc.add(5, 3);  
        System.out.println("Sum of integers: " + sumInts);  
          
        // 调用接受两个浮点数参数的方法  
        double sumDoubles = calc.add(5.5, 3.3);  
        System.out.println("Sum of doubles: " + sumDoubles);  
          
        // 调用接受三个整数参数的方法  
        int sumThreeInts = calc.add(5, 3, 2);  
        System.out.println("Sum of three integers: " + sumThreeInts);  
    }  
}

  • 27
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值