没有封装
面向对象的三大特征: 封装:好处:1.封装之后,看不到这个事物比较复杂的一面,只能看到简单的一面 复杂性封装,对外提供简单的操作入口,比如照相机(内部原理很复杂,但是操作起来很简单)
2.封装之后才会形成真正的对象,真正的独立
3.封装就意味着以后的程序可以重复使用,并且这个事物的适用性比较强,在任何场合都可以用
4.封装之后,对于事物本身提高了安全性。
继承 多态
定义一个User类
package Test2
;
public class User {
int age
;
String name
;
}
定义UserTest测试类
package Test2
;
public class UserTest {
public static void main(String
[] args
) {
User user
= new User();
user
.name
="大明";
user
.age
=-100;
System
.out
.println(user
.age
);
}
}
封装之后
对于数据的访问形式:
读取值(get)修改值(set)
封装的步骤:(操作入口变成了只能通过set和get方法进行访问)
所有属性私有化,使用private关键字进行修饰。private修饰所有的数据只能在本类中访问对外提供简单的操作入口。也就是说想要访问age属性必须通过入口进行访问 对外提供两个公开的方法,分别是set和get 想修改age就调用set 向读取age就调用getset方法的命名规范:
public void set+属性名首字母大写(形参){ }
public void setAge(int a){ age=a; }
get方法的命名规范:
public int getAge(){ return age; }
setter and getter 方法没有static关键字 有static关键字的方法用法:类名.方法名(实参); 没有static关键字的方法用法:引用.方法名(实参);
也可以在代码片段里右键 source - setter and getter
定义一个user类
package Test3
;
* @author Administrator
*
*/
public class User {
private int age
;
public void setAge(int a
){
if(a
<0 || a
>150){
System
.out
.println("输入的年龄不合法");
return;
}
age
= a
;
}
public int
getAge(){
return age
;
}
}
package Test3
;
public class UserTest {
public static void main(String
[] args
) {
User user
=new User();
user
.setAge(-100);
user
.setAge(10);
int age
=user
.getAge();
System
.out
.println(age
);
}
}