• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

青携纸笔携香

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

Java第十一课----类与对象的关系、构造器与封装

类与对象的关系

 

 

创建与初始化对象

 

  • 使用new关键字创建对象

  • 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用

  • 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:

      1. 必须和类的名字相同

      2. 必须没有返回类型,也不能写void

package com.oop.demo02;
​
//学生类
public class Student {
    //属性:字段
   String name;//null
   int age;//0
​
   //方法
   public void study(){
       System.out.println(this.name+"在学习");
  }
}
​
​
package com.oop.demo02;
​
//一个项目应该只存在一个main方法
public class Application {
   public static void main(String[] args) {
      //类:抽象的,实例化
       //类实例化后会返回一个自己的对象!
       //student对象就是一个Student类的具体实例!
       Student xiaoming = new Student();
       Student xiaohong = new Student();
​
       xiaoming.name="小明";
       xiaoming.age=3;
​
       System.out.println(xiaoming.name);
       System.out.println(xiaoming.age);
​
       xiaohong.name="小红";
       xiaohong.age=3;
​
       System.out.println(xiaohong.name);
       System.out.println(xiaohong.age);
​
       xiaoming.study();
       xiaohong.study();
  }
}
​

 

构造器

 

  1. 类是一个模板:抽象,对象是一个具体的实例

  2. 方法

    定义、调用!

  3. 对应的引用

引用类型:基本类型(8)

对象是通过引用来操作的:栈---->堆

  1. 属性:字段Field成员变量

默认初始化:

数字:0 0.0

char: u0000

boolean: false

引用:null

修饰符 属性类型 属性名=属性值!

  1. 对象的创建和使用

    • 必须使用new关键字创造对象,构造器 Person java =new Person();

    • 对象的属性 Java.name

    • 对象的方法 Java.sleep()

  2. 类:

静态的属性 属性

动态的行为 方法

 

封装、继承、多态

package com.oop.demo03;
​
public class Pet {
  public String name;
  public int age;
​
   //无参构造
​
   public void shout(){
       System.out.println("叫了一声");
​
​
​
  }
}
​
​
​
​
package com.oop;
​
import com.oop.demo03.Pet;
​
public class Application {
​
   public static void main(String[] args) {
​
       Pet dog = new Pet();
       dog.name="旺财";
       dog.age=3;
       dog.shout();
​
       System.out.println(dog.name);
       System.out.println(dog.age);
​
  }
}
​

 

 

封装
  • 高内聚,低耦合:高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用

  • 封装(数据的隐藏):通常,应直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏

  • 记住这句话就够了:属性私有,get/set

package com.oop.demo04;
​
//类 private:私有
public  class Student {
       //属性私有
       //名字
       private String name;
       //学号
       private int id;
       //性别
       private char sex;
       //年龄
       private int age;
​
       //提供一些可以操作这个属性的方法
       //提供一些public的get、set方法
​
       //get 获得这个数据
       public String getName() {
               return this.name;
      }
​
       //set 给这个数据设置值
       public void setName(String name) {
               this.name = name;
      }
​
       //fn + alt + insert 快速生成get与set方法
​
       public int getId() {
               return id;
      }
​
       public void setId(int id) {
               this.id = id;
      }
​
       public char getSex() {
               return sex;
      }
​
       public void setSex(char sex) {
               this.sex = sex;
      }
​
       public int getAge() {
               return age;
      }
​
       public void setAge(int age) {
               if (age>120||age<0){//不合理的年龄
                       this.age=3;
              }else {
                       this.age=age;
              }
               this.age = age;
      }
}
​
​
​
​
package com.oop;
​
import com.oop.demo04.Student;
/*
1.提高程序的安全性,保护数据
2.隐藏代码的实现细节
3.统一接口
4.系统可维护性增加了
*/
​
public class Application {
​
   public static void main(String[] args) {
       Student s1 = new Student();
        s1.setName("王海峰");
​
       System.out.println(s1.getName());
​
       s1.setAge(18);
       System.out.println(s1.getAge());
​
  }
}
​
​
​

 

 

 

 

 

 

 

 

 

 

posted on 2022-03-05 22:13  青携纸笔携香  阅读(90)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3