黑马程序员_面对对象的理解

android培训 java培训 、期待与您交流! ----------' target='_blank'>-------  android培训 java培训 、期待与您交流! ----------
 
1,面向对象的特征:
      封装,继承,多态。
 
2,面向对象与面向过程
(1)面向过程 强调过程,执行者
(2)面向对象 强调对象,指挥者
(3)面向对象思想的特点
a:更符合人们思考习惯的思想
b:复杂的内容简单化
c:使我们从执行者变成了指挥者
 
3,类和对象
(1)类 对现实世界中事物的描述(属性和方法)
(2)对象 现实世界中实际存在具体的个体
(3)对象的使用 new

4,局部变量和成员变量
(1)作用范围 
局部变量:方法内
成员变量:类中,对整个类有效
(2)存储空间
局部变量:栈内存
成员变量:堆内存
(3)初始化值
局部变量:必须手动给值
成员变量:默认初始化值。

5,匿名对象的使用
(1)当对对象中的功能只执行一次的时候使用。
Person p = new Person();
p.show();
p.show();
p.print();

new Person().show();
new Person().show();
new Person().print();
 
(2)用于作为实际参数进行传递。
method(new Person());

public static void method(Person p){}

6,封装
(1)封装的好处:便于重复使用,安全性高。
(2)private权限修饰符
class Demo  {
private int age;
public void setAge(int age)  {
if(age>100 || age<0)  {
System.out.println("年龄有误");
}
else  {
this.age = age;
}
}
public int getAge()  {
return age;
}
}

7,构造函数
(1)用途:用于创建对象,也有可能要进行初始化。
1:格式 类名(){//code}
2:Person(){}
(2)特点 如果你没有写构造函数,系统会默认给一个空参构造,你写了,系统就不会给了
(3)重载构造函数
1:Person(){}
2:Person(String name){}
3:Person(int age){}
4:Person(String name,int age){}

注:构造还可以用于给属性赋值。
 
8,this关键字
(1)代表当前对象的引用。使用的时候,谁调用方法,this就代表谁。
(2)什么时候使用this
1:用于局部变量隐藏成员变量。
2:写功能的时候,可能用到this。比如,compare()
3:构造函数中使用this
this() 必须放在第一行。
同下面的道理:
Person(String name)  {
this.name = name;
}

Person(String name,int age)  {
this.name = name;
//this(name);//是找带一个字符串类型参数的构造方法
this.age = age;
}

public static int sum(int a,int b)  {
return a+b;
}

public static int sum(int a,int b,int c)  {
return a+b+c;
//return sum(a,b)+c;
//return sum(sum(a,b),c);
}

9,代码块
(1)局部代码块 提到代码效率。
(2)构造代码块 每new一次执行一次。
 
10,static关键字
(1)静态的意思。可以修饰类的成员(成员变量和成员方法);
(2)静态成员的特点:
1:随着类的加载而加载,生命周期最长。
2:优先于对象存在。
3:被所有的对象所共享。
4:比非静态成员多了一种访问方式。可以通过类名直接调用。而且建议这样做。
(3)什么时候需要使用static修饰呢?
当类中的成员需要被所有对象共享时,用static修饰。不需要被共享时,就不用static修饰。
简单说:共性用static修饰,特性不用static修饰。(饮水机和水杯。)
(4)注意事项
1:静态方法只能访问静态成员的。
2:静态方法中不能使用this,super关键字。
3:main是静态的。
格式如下:
public static void main(String[] args){ 
}
   
(5)静态代码块
静态代码块--构造代码块--构造方法。

11,设计模式
java中有23种设计。

单例设计模式
保证类在内存中只有一个对象
(1)控制类的创建,不让外部类来创建类的对象。private
(2)在本类中定义一个本来的对象。Student s;
(3)提供公共的访问方式。   public static Student getInstance(){return s}

单例写法两种:
(1)饿汉式 开发用这种方式。
class Student  {
private Student(){}

private static Student s = new Student();

public static Student getInstance()  {
return s;
}
}
(2)懒汉式 面试写这种方式。多线程的问题?
class Teacher  {
private Teacher(){}

private static Teacher t;

public static Teacher getInstance()  {
if(t==null){
t = new Teacher();
}
return t;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值