什么是类?什么是对象?
- 现实生活中是由很多很多对象组成的,基于对象抽出了类
- 对象:软件中真实存在的单个个体/东西
类:类别/类型,代表一类个体
- 类是对象的模子,对象是类的具体的实例
- 类中可以包含:
- 对象的属性/特征-----------------------成员变量
- 对象的行为/动作-----------------------方法
- 一个类可以创建多个对象
2. 如何创建类?如何创建对象?如何访问成员?
```java
public class Student { //Student类就是我们自己造的一种引用类型//成员变量String name;int age;String address;//方法void study(){System.out.println(name+"在学习...");}void sayHi(){System.out.println("大家好,我叫"+name+",今年"+age+"岁了,家住"+address);}}
public class StudentTest {public static void main(String[] args){//创建一个学生对象Student zs = new Student();//给成员变量赋值zs.name = "zhangsan";zs.age = 25;zs.address = "河北廊坊";//调用方法zs.study();zs.sayHi();Student ls = new Student();ls.name = "lisi";ls.age = 24;ls.address = "黑龙江佳木斯";ls.study();ls.sayHi();//1)创建了一个学生对象//2)给所有成员变量赋默认值Student ww = new Student();ww.study();ww.sayHi();}}
方法的重载(overload/overloading)
- 发生在同一类中,方法名相同,参数列表不同
- 编译器在编译时会根据方法的签名自动绑定方法
//重载的演示public class OverloadDemo {public static void main(String[] args) {Aoo o = new Aoo();o.show(); //编译器根据方法的签名自动绑定方法o.show("zhangsan");o.show(25);o.show("zhangsan",25);o.show(25,"zhangsan");}}class Aoo{void show(){}void show(String name){}void show(int age){}void show(String name,int age){}void show(int age,String name){}//int show(){ return 1;} //编译错误,重载与返回值类型无关//void show(String address){} //编译错误,重载与参数名称无关}
构造方法:构造函数、构造器、构建器---------复用给成员变量赋初值代码
- 作用:给成员变量赋初始值
- 与类同名,没有返回值类型(连void都没有)
- 在创建(new)对象时被自动调用
- 若自己不写构造方法,则编译器默认提供一个无参构造方法,若自己写了构造方法,则不再默认提供
- 构造方法可以重载
2. this:指代当前对象,哪个对象调用方法它指的就是哪个对象
只能用在方法中,方法中访问成员变量之前默认有个this.
this的用法:
- this.成员变量名-------------访问成员变量
> 成员变量与局部变量同名时,若想访问成员变量则this不能省略
class Student {String name; //成员变量(整个类中)int age;String address;//局部变量(当前方法中)Student(String name,int age,String address){this.name = name;this.age = age;this.address = address;}void study(){System.out.println(name+"在学习...");}void sayHi(){ System.out.println("大家好,我叫"+name+",今年"+age+"岁了,家住"+address);}}
- this.方法名()-----------------调用方法(了解)
- this()---------------------------调用构造方法(了解)
null:
表示空,没有指向任何对象,若引用的值为null,则该引用不能进行任何点操作了,若操作则发生NullPointerException空指针异常
引用类型数组
引用类型的数组是一种数组,其中每个元素都是引用类型的对象。引用类型包括类、接口、数组和枚举。
下面是一个示例代码,演示了如何创建和使用引用类型的数组:
public class Main {public static void main(String[] args) {// 创建一个字符串数组String[] names = new String[3];// 给数组元素赋值names[0] = "Alice";names[1] = "Bob";names[2] = "Charlie";// 遍历数组并打印每个元素for (String name : names) {System.out.println(name);}}
}
在这个示例中,我们创建了一个字符串数组names
,它有3个元素。我们使用索引来访问数组元素,并通过赋值运算符将字符串赋给每个元素。然后,我们使用增强for循环遍历数组,并打印每个元素的值。
该代码的输出将是:
Alice
Bob
Charlie
总结:
类是Java中最基本的组织单元。一个类是对象的蓝图或模板,它定义了对象的属性和行为。
类有以下几个特点:
- 类是由成员变量(属性)和成员方法(行为)组成的。
- 类可以用来创建多个对象,每个对象都具有相同的属性和方法。
- 类可以被其他类继承,从而扩展其属性和方法。
- 类可以被封装,即将类的实现细节隐藏起来,只暴露必要的接口。
类的语法结构如下:
[修饰符] class 类名 {// 成员变量[修饰符] 类型 变量名;// 构造方法[修饰符] 类名(参数列表) {// 构造方法的实现}// 成员方法[修饰符] 返回类型 方法名(参数列表) {// 方法的实现[return 返回值;]}
}
其中,修饰符可以是public
、private
、protected
等,用来控制成员的访问权限。成员变量定义了类的属性,可以是基本数据类型或引用数据类型。成员方法定义了类的行为,可以访问和修改成员变量,也可以调用其他方法。
类的实例化是通过使用new
关键字创建一个对象,并调用构造方法进行初始化。对象可以访问成员变量和成员方法,使用.
运算符进行访问。
类的继承是通过使用extends
关键字实现的,子类可以继承父类的属性和方法,并可以添加自己的属性和方法。一个类只能继承一个父类,但可以实现多个接口。
类的封装是通过使用private
关键字实现的,将类的实现细节隐藏起来,只能通过公共的方法进行访问。这样可以提供更好的安全性和灵活性。