一.面向对象的概念
三大特性:封装、继承、多态
二.类与对象
类的定义:
class 类名{
属性类型 成员变量名;
......
//成员方法
修饰符 返回值类型 方法名(参数列表){
方法体;
}
}
package com.xdl.java.pkg02;
public class Person {
// private 私有的
// 声明姓名
private String name;
// 声明年龄
private int age;
// 设置公共访问的方法
public void setName(String str) {
name = str;
}
public String getName() {
return name;
}
public void setAge(int n) {
// 验证年龄
if (n >= 0 && n < 200) {
age = n;
}
}
public int getAge() {
return age;
}
// 声明方法
public void say() {
System.out.println("姓名:" + name + ",年龄:" + age);
}
}
对象的创建与使用
对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步:
- 声明:声明一个对象,包括对象名称和对象类型。
- 实例化:使用关键字new来创建一个对象。
- 初始化:使用new创建对象时,会调用构造方法初始化对象。
对象创建:类名(类型) 对象 = new 类名();
package com.xdl.java.pkg02;
public class TestPerson1 {
public static void main(String[] args) {
// ctrl+1
Person p = new Person();
System.out.println(p);
// JVM初始化时做的,零值(根据数据类型,分配初始值)
// null
System.out.println(p.name);
// 0
System.out.println(p.age);
p.say();
}
}
类的封装
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
package com.xdl.java.pkg02;
public class TestPerson2 {
public static void main(String[] args) {
Person p = new Person();
// p.name = "张三";
// p.age = -18;
p.setName("张三");
p.setAge(-18);
p.say();
}
}
三.构造方法
构造方法的定义
- 做一些默认初始化的操作
- new对象时,调用构造方法
- 构造方法有三个特征
- 构造方法方法名与类名相同
- 构造方法没有返回值类型
- 构造方法不能使用return返回一个值
package com.xdl.java.pkg03;
public class Person {
// 构造方法
public Person() {
System.out.println("构造方法被调用了");
}
}
package com.xdl.java.pkg03;
public class TestPerson1 {
public static void main(String[] args) {
// 定义个Person
Person p = null;
System.out.println("实例化对象");
p = new Person();
}
}
构造方法的重载
- 构造方法也可以重载
- 一定要有空参构造方法
package com.xdl.java.pkg03;
public class Person2 {
private String name;
private int age;
// 重载的构造方法
public Person2(String str) {
name = str;
}
public Person2(String str, int n) {
name = str;
age = n;
}
public void say() {
System.out.println("姓名:" + name + ",年龄:" + age);
}
}
package com.xdl.java.pkg03;
public class TestPerson2 {
public static void main(String[] args) {
Person2 p1 = new Person2("张三");
Person2 p2 = new Person2("李四", 18);
p1.say();
p2.say();
}
}