java面向对象
面向对象——行为化(概念相对抽象)
面向对象是把整个需求按照特点、功能划分,将这些存在共性的部分封装成类(类实例化后才是对象),
创建了对象不是为了完成某一个步骤,而是描述某个事物在解决问题的步骤中的行为
我们将繁琐的步骤,通过行为、功能,模块化,这就是面向对象
面向对象编程特点:
1.抽象性: 通过对象来分析具体的问题
2.****封装性: 将属性和方法都封装到对象中,方便统一管理 便于维护 便于二次开发 安全性较高(私有)
3.****继承性: 将对象的属性和方法进行传递 ,Java C C++
4.多态性: 一个类 可以产生多种对象!js用不了!!
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,
可以设计出低耦合的系统,使系统更加灵活、更加易于维护
在开发过程中,考虑到安全性要求,我们一般不在成员变量名前面使用@public、@protected等关键字修饰
而是使用Set方法来为对象提供成员变量的值。在set方法的内部也可以对一些不合理的赋值进行筛选过滤。
Set方法的作用:为外界提供一个设置成员变量值的方法
命名规范:
(1)方法名必须以set开头
(2)Set后面跟上成员变量的名称,首字母大写
(3)返回值一定是void
(4)一定要接收一个参数,而且参数类型需要和成员变量的类型一致
(5)形参名不能喝成员变量名一样(苹果官方推荐成员变量名前加_以示区分)
Set方法的好处:
(1)不让数据暴露在外,保证了数据的安全性
(2)对设置的数据进行过滤
<script type="text/javascript">
//封装性:面向对象 可以将属性 分为两大类 一类公开属性 一类私有属性
//公开属性:在任何位置都可以随便访问和修改 ,修改过程中没有任何的限制
//私有属性: 不能随意访问,必须通过指定的方法来访问和修改 //把私有属性定义成局部变量 用闭包的形式
//1.安全系数较高的属性 2.设置时不能随意设置
function People(name,age,password,phone){
//把需要私有的属性封装给一个局部变量
var phone=phone
this.name=name
this.password=password
this.age=age
//get方法 来获取
this.getPhone=function(){
//判定
return phone
}
//set方法 来设置
this.setPhone=function(p){
var reg=/\d{11}/ //给个正则表达式
if(reg.test(p)){
phone=p
}else{
alert("不符合规范")
}
}
}
var u1=new People("麻头",21,"123456",18816165858)
console.log(u1.getPhone())//15233645788
u1.setPhone(18816162828)
console.log(u1.getPhone())//15233567866
</script>