Java SE基础之面向对象(一)

一、类

什么是类

类是对现实生活中一类具有个体属性和行为的事物的抽象,确定对象将会有的属性和行为

类的组成

  • 属性:在类中通过成员变量来体现(类中方法外的变量)
  • 行为: 在类中通过成员方法体现(去掉static关键字)

类的定义

步骤:

定义类

编写类的成员变量

编写类的成员方法

1
2
3
4
5
6
7
public class 类名{
//成员变量
数据类型 变量1;

//成员方法
方法1;
}

二、对象

对象的理解

对象是类的一个实例,现实生活中,万物皆可对象化,如车、狗等,它们都有自己的状态(颜色、种类等)和行为(跑)

在方法中我们可以将对象实例化后访问对象内的属性,调用对象的方法来操作对象。

对象的使用

创建对象
  • 格式:类名 对象名=new 类名();
  • 范例:Person p=new Person();
使用对象

1、使用成员变量

  • 格式: 对象名 变量名
  • 范例: p.height

2、使用成员方法

  • 格式:对象名.方法名()
  • 范例: p.call()

三、对象执行内存图解

多个对象指向相同地址

1
2
3
4
5
6
7
8
9
10
11
public class StudentTest{
public static void main(String[] args){
Student s1=new Student();
s1.name="张三";
System.out.println(s1.name);
Student s2=s1;
s2.name="李四";
System.out.println(s1.name);
System.out.println(s2.name);
}
}

执行流程

  • 首先main方法被加载到栈内存
  • 创建第一个对象,Student s1出现在栈内存,new Student()出现在堆内存
  • 堆内存会产生一个空间地址,并将地址赋给s1
  • 修改对象s1的name属性,输出
  • 将第一个对象地址赋给第二个对象s2,此时两个对象的指向相同
  • 赋值,输出

输出结果:

1
2
3
张三
李四
李四

四、成员变量与局部变量的区别

区别 成员变量 局部变量
类中位置不同 类中方法外 方法内或者方法声明上
内存中位置不同 堆内存 栈内存
生命周期不同 随着对象的存在而存在,消失而消失 随着方法的调用而存在,调用完毕而消失
初始化值不同 有默认的初始化值 没有默认的初始化值,必须先定义,赋值,才能使用

五、private关键字

  • 是一个权限修饰符
  • 可以修饰成员(成员变量和成员方法)
  • 作用是保护成员不被别的类使用,被private修饰的成员只在本类中才能访问。

针对private修饰的成员变量,如果需要别其他类使用,需提供相应操作:

  • 提供get变量名()方法,用于获取成员变量的值,方法用public修饰
  • 提供set变量名(参数)方法,用于设置成员变量的值,方法用public修饰

练习:
编写一个标准类,要求:成员变量用private修饰,提供对应的get()/set()方法

Student.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package Student;

public class Student {
private String name;
private int age;
public void setName(String n){
name=n;
}
public String getName(){
return name;
}
public void setAge(int a){
age=a;
}
public int getAge(){
return age;
}
}

StudentDemo.java

1
2
3
4
5
6
7
8
9
10
11
package Student;

public class StudentDemo {

public static void main(String[] args) {
Student s=new Student();
s.setName("张三");
s.setAge(23);
System.out.println(s.getName()+","+s.getAge());
}
}

请我喝杯咖啡吧~

支付宝
微信