黑马程序员_JAVA学习日记_面向对象2

黑马程序员-学习笔记

 

黑马程序员_JAVA基础_面向对象2

 

------- android培训java培训、期待与您交流! ----------

 

面向对象:

1.代码块:就是用一对{}括起来的内容

构造代码块:在类的成员位置上,每个构造方法都会默认调用构造代码块,它里面可以放每个对象都具有的默认初始值;

局部代码块:在方法体中,当方法体中的语句执行完以后,它里面定义的变量就会从内存中消失;

static代码块:随着类的加载而加载;它在类中只执行一次,比main还先执行;

执行顺序:静态代码块-à构造代码块-à构造方法-à局部代码块

2.通过new创建对象时在内存中做了什么事:

     Person p=newPerson()

1)   将Person.class文件加载进内存;

2)   如果p定义在主方法中,那么就会在栈内存中开辟一个变量p内存空间;

3)   在堆内存中就会对对象分配内存空间;

4)   对对象进行默认初始化值;

5)   对对象进行显示初始化值

6)   调用构造代码块对对象进行初始化;(如果没有就不执行)

7)   调用构造方法对对象进行初始化值,初始化完毕;

8)   将对象的内存地址值赋给变量p,让p就指向该对象;

3.static关键字:static的意思:可以用于修饰成员(成员变量和成员方法);

Astatic的特点:随着类的加载而加载;优先于对象而存在;可以直接用类名调用;被该类中所有的对象所共享;

B: 静态的注意事项:静态方法只能访问静态成员,因为静态随着类的加载而加载,优先于对象存在;

静态中不能使用thissuper关键字;

主方法是静态的:public static void main(String[]agrs)

public:公共的意思,是最大权限修饰符;static:因为JVM调用主方法是没有创建对象,只能通过类名调用,所以main是用static修饰;void:因为main是被JVM调用,所以不需要返回值;main:main是主要的意思,所以jvm采用了这个名字,是程序的入口;String[]:字符串数组;args:数组名;

main方法可以通过在运行的时候通过java命令给args数组赋值,格式:java MainTest  helloworld

4.静态变量与成员变量的区别:

A:调用方式:静态直接可以用类名调用,也可以用对象名调用,成员要用对象名调用;

B:存储位置:静态存储在方法区中的静态区中,成员存储在堆内存中;

C:生命周期:静态随着类的加载而加载,随着类的消失而消失,生命周期最长;成员随着对象的建立而存在,随着对象的消失而消失;

D:与对象的相关性:静态变量是被本类中所有对象所共享;成员变量是每个对象的特有属性;

5.什么时候使用静态:

A:当数据被本类中所有对象所共享的时候将数据使用静态修饰;B:当某个方法没有访问该类中的非静态成员时,可以将这个方法定义为静态方法;

 一般情况不定义静态因为静态的生命周期过长。

6.制作APIAPI(全拼):Application Program Interface应用程序编程接口。

(1)类中的内容需要用文档注释。(2)使用JDK\bin目录下的javadoc工具。

         格式:javadoc -d目录 -author -version ArrayTool.java

7.单例设计模式:用来保证类中对象的唯一性;

     思想:外界不能创建对象,将对象私有,将空参数的构造函数私有;本身要创建一个对象,在成员位置上创建;对外提供静态的公共的方法来获取对象。

8.单例设计模式的两种方式:

    A:饿汉式:当类加载的时候就创建对象

    class Single

{

     privatestatic Student s=new Student();

     privateSingle(){}

     publicstatic Student getInstance()

     {

            returns;

     }

}

是线程安全的,开发使用;

  B:懒汉式:当对象使用的时候创建对象

class Single

{

     privatestatic Student s=null;

     privateSingle(){}

     publicstatic Student getInstance()

     {

            if(s==null)

            {

                   s=newStudent();

            }

            returns;

     }

}

是线程不安全的

 

------- android培训java培训、期待与您交流! ----------  详细请查看:http://edu.csdn.net/heima/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值