暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

07面向对象基础

是汐江呀 2020-11-08
260

类与对象

类:类是对具有相同属性和行为的事物的统称
对象:对象是类的具体体现。

一句话总结:类是抽象的,对象是具体的,类是对象的模板。

类的定义格式

//类名: 见名知意,每一个单词首字母大写
public class 类名{
   //属性:成员变量
   //行为:成员方法
}

使用类来描述学生这个事物

public class Student{
   //属性:成员变量
   String name;
  int score;
   
   //行为:成员方法
   public void study(){
       System.out.println("学生努力学习");
  }
}

创建的对象的格式

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

在测试类中,创建Student对象,指挥对象做事情。

public class TestStudent(){
   public static void main(String[] args){
       //创建Student对象
       Student stu=new Student();
       //给对象的属性赋值
       stu.name="张三";
       stu.score=98;
       //获取学生的属性值
       System.out.println(stu.name);
       System.out.println(stu.score);
       
       //调用学生的方法
       stu.study();
  }
}

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

1.类中的位置不同:
1)成员变量:在类中,方法外
2)局部变量:在方法内部,或者方法声明上(形式参数)

2.作用范围不同:
1)成员变量:在整个类中都可以使用
2)局部变量:所在的方法中可以使用

3.内存中的位置不同:
1)成员变量:在堆内存中
2)局部变量:在栈内存中

4.生命周期不同
1)成员变量:随着对象的创建而创建,随着对象垃圾回收器回收而消失
2)局部变量:随着方法的调用而创建,随着方法调用结束而小数。

5.默认值不同
1)成员变量:有初始的默认值
2)局部变量:没有初始的默认值,不能直接使用。

private关键字

private是一个权限修饰符,用来修饰成员变量或者成员方法。被private修饰的成员,只能在本类中访问。

一般我们在创建一个类时,需要满足下面的要求
1.成员变量私有化
2.对外提供公共的访问方式
setXxx: 给成员变量赋值
getXxx:获取成员变量的值

this关键字

this表示本类对象的引用,当成员变量和局部变量重名时可以使用this进行区分。

this的本质:哪个对象调用方法,方法中的this就表示哪个对象。
public class Student {
//被private修饰的成员变量,只能在本类中访问
private String name;
private int age;

//对外提供get和set方法
//设置姓名
public void setName(String name){
this.name=name;
}
//获取姓名
public String getName(){
return name;
}

//设置年龄
public void setAge(int age){
this.age=age;
}

//获取年龄
public int getAge(){
return age;
}
}

封装性

封装指的是隐藏内部细节,对外提供公共的访问方式。

封装在代码中的体现
1.使用private修饰成员变量,提供get和set方法
2.方法是对特定功能代码的封装
3.类是对属性和功能的封装。

构造方法

构造方法用来在创建对象时做一些初始化的操作,每次创建对象构造方法都会执行。

1.构造方法的格式
//名称必须和类名相同
public 类名(形式参数){
...
}

2.构造方法什么时候执行?
答:每次创建对象的时候执行构造方法

3.构造方法用来干什么?
答:构造方法用来在创建对象时做一些初始化的操作
构造方法就是用来创建对象的。

4.构造方法的注意事项?
1)如果没有写构造方法,系统会自动添加一个空参数构造方法。
2)如果写了构造方法,系统不再添加空参数构造方法。
建议手动添加一个空参数构造方法

一个标准类的写法

一个标准的类,包含成员变量、成员方法和构造方法。

public class 类名{
//成员变量: 描述事物的属性

//构造方法:用来创建对象,并且可以做一些初始化操作

//get和set方法:获取和设置属性值
}

写一个标准的Student类

public class Student {
//属性:姓名、年龄、性别
private String name;
private int age;
private String sex;

//空参数构造方法
public Student() {
}

//有参数构造方法
public Student(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}

//提供get和set方法:alt+insert
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;
}

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}
}
public class TestStudent {
public static void main(String[] args) {
//使用空参数构造方法,创建对象
Student s1 = new Student();
//给属性赋值
s1.setName("张三");
s1.setAge(18);
s1.setSex("男");
//获取属性值
System.out.println(
s1.getName() + "," + s1.getAge() + "," + s1.getSex());

System.out.println("------------------");
//使用有参数构造方法,创建对象
Student s2 = new Student("李四", 20, "女");
System.out.println(
s2.getName() + "," + s2.getAge() + "," + s2.getSex());
}
}
文章转载自是汐江呀,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论