面向对象特性:封装性

1 封装性

1.1封装性的产生目的

  • 保护某些属性和方法不被外部所看见

如果不同private而用public来修饰属性。如:

class People{
    public age;
}

则在外部可以直接在对象实例化后通过people.age = 30直接修改属性,甚至出现people.age = -30这样的错误属性。

然而用private修饰类的属性后,外部将不能通过people.age = 30这样直接修改属性。

1.2封装的实现

  • 为属性和方法进行封装是通过关键字private声明的
  • 实现该属性的set和get方法,为外部所访问

通过set的方法,来传入属性值。如:

public void setAge(int age) {
     //set是设置数据
    this.age = age;
}

外部调用方法:people.setAge(30);

通过get的方法,来得到属性值。如:

public int getAge() {
    return age;
}

外部调用方法:int age = people.getAge();

然而通过这种方法,外部依然可以通过people.setAge(-30);来传入-30这个非法的年龄值。

于是就需要在类中的set方法加入判断:

public void setAge(int age) {
        //set是设置数据
        if (age>=0&&age<150){
            this.age = age;
        }
    }

通过这个方法,来判断输入的值是否为非法值。

2 匿名对象

2.1 匿名对象就是没有名字的对象,如果程序中只是用一次该对象,就可以使用匿名对象的方式

如:

package com.jikexueyuan.classdemo;
class Student{
    public void tell(){
        System.out.println("hello world");
    }
}
public class ClassDemo03 {
     public static void main(String[] args){
         //Student student = new Student();
         //student.tell();
         //匿名对象,用于只使用一次。
         new Student().tell();
     }
}

3 构造方法

3.1格式:(少了一个返回值类型

访问修饰符 类名称(){
    程序语句
}

如:

class Pep{
    //构造方法
    public Pep(){
        System.out.println("hello world");
    }
}
public class ClassDemo04 {
    public static void main(String[] args){
        Pep pep = new Pep();
    }
}

在Pep类实例化之后,Pep类中的构造方法会直接被执行。

3.2注意点:

  • 构造方法名称必须与类名一致
  • 构造方法没有返回值

3.3构造方法主要是为类中的属性初始化

如:

class Pep{
    //构造方法
    int age;
    String name;
    public Pep(int a,String n){
        age = a;
        name = n;
        System.out.println("姓名:"+name+"年龄:"+age);
    }
}
public class ClassDemo04 {
    public static void main(String[] args){
        Pep pep = new Pep(30,"张三");
    }
}

3.4 每个类在实例化之后都会调用构造方法,如果没有构造方法,程序在编译的时候回创建一个无参的什么都不做的构造方法

3.5 构造方法也可以进行重载

比如上面3.3的代码,在public Pep的方法下面进行重载创建一个:

public Pep(int a){
        age = a;
        System.out.println("年龄:"+age);
    }

这样,在main方法中,通过Pep pep = new Pep(30,"张三");或者Pep pep = new Pep(30);都可以调用构造方法。这就是构造方法的重载。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇