黑马程序员__面向对象 封装

/*面向对象与面向过程的辨析:
面向对象是一种思维,是基于面向过程的,面向过程注重的是过程,完成一件事所需要的全部过程都要参与,效率较低。
而面向对象注重的是一种结果,对于过程是怎么实现的,却根本不关心,只要对象具备了我所需要的功能,那么就调用这个对象来实现我所需要的结果。
面向对象使我们由执行者变成了指挥者。
面向对象体现在代码中就是把一些功能,属性封装在类中,创建该类对象,并使用对象对该类中的功能进行调用。
封装可以提高代码的复用性
*/
public class Test {




/**
* @param args
*/
public static void main(String[] args) {
Eat et=new Eat();                              //创建对象
et.eat("小明");                                     //调用属性
System.out.println(et.name);        //调用函数


}




}
class Eat                                                            //定义一个类,里面封装了eat();的方法和name属性
{
String name;
void eat(String name){
this.name=name;
System.out.println("我吃了!");
}
}
//如果不想让外界直接访问属性,可以讲属性进行私有化,并对外提供公共的访问方法set/get方法
public class Test {




/**
* @param args
*/
public static void main(String[] args) {
Eat et=new Eat();
et.setName("小明");
System.out.println(et.getName());
et.eat();
}




}
class Eat
{
private String name;                //属性私有化
void eat(){
System.out.println("我吃了!");
}
public String getName() {               //对外提供的公共访问方法
return name;
}
public void setName(String name) {
this.name = name;
}


}
//若不行外界创建本类对象,可以对构造函数进行私有化,但内部方法和属性必须为静态(static)属性或方法,通过类名直接调用
public class Test {




/**
* @param args
*/
public static void main(String[] args) {




Eat.setName("小明");                       //通过类名直接调用
System.out.println(Eat.getName());
Eat.eat();
}




}
class Eat
{
private static String name;
private Eat(){}
private Eat(String name){
this.name=name;
}
static void eat(){
System.out.println("我吃了!");
}
public static String getName() {
return name;
}
public static void setName(String name) {
Eat.name = name;
}


}
//单例设计模式:把构造函数私有化,不让其创建对象,类中创建一个对象,对外提供静态访问方法,返回此对象,通过此对象对类中的方法属性进行调用
class Test
{
public static void main(String[] args) 
{
Person per=Person.per();                       //类名直接访问方法
System.out.println("------------------");       //分隔符
Person per1=Person.per();
per.eat();                                                     //通过类中对象调用方法
System.out.println(per==per1);              //两个对象地址值是一样的






}


}
class Person
{
private static Person per=new Person();                // 创建本类对象
private String name="xiao";
private String sex;
private int age;
private Person()                                                             //构造方法私有化
{
System.out.println("不准访问!");
}
private Person(String name)
{
this.name=name;
}
private Person(String name,String sex)
{
this(name);
this.sex=sex;
}
private Person(String name,String sex,int age)
{
this(name,sex);
this.age=age;
}




//--------------gs-----------
void setName(String name)
{
this.name=name;
}
String getName()
{
return name;
}
void setSex(String sex)
{
this.sex=sex;
}
String getSex()
{
return sex;
}
void setAge(int age)
{
this.age=age;
}
int getAge()
{
return age;
}
public static Person per()                                        //对外提供静态访问方法,返回本类对象
{
String x=per.name;
System.out.println(x);


return per;
}


public void eat()
{
System.out.println("吃饱了!");
}
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值