黑马程序员_java面向对象2
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
一、static 静态 关键字
使用范围,用于修饰成员变量和成员函数。当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用。调用方法是:类名.静态成员。静态成员存于方法区中。
static特点:
1、随着类的加载而加载,就是说随着类产生而产生,随着类的消失而消失,生命周期长
2、优先于对象存在,静态是先存在的,对象是后存在的
3、被所有类所共享,就是说,一般static所描述的成员一般为对象的共有的东西
4、可以直接被类名所调用
实例变量和类变量的区别:
1、存放位置
类变量随着类的加载而存在于方法区中
实例变量随着对象的建立而存在于堆内存中
2、生命周期
类生命周期长,随着类的消失而消失
实例变量生命周期随着对象的消失而消失
静态的使用注意事项:
1、静态方法只能访问静态成员
非静态可以方法既可以访问静态页可以访问非静态
2、静态方法中,不可以定义this ,super 关键字。因为静态优先于对象存在,所以静态方法中不可以出现this关键字。
什么时候使用静态:
1、当对象中出现而来的共享数据时,注意是数据,不是属性。此时该数据被静态所修饰。
对象中的特有数据要定义成非静态存于堆内存中。
2、当功能内部没有访问到非静态数据,即对象的特有数据时,该功能定义为静态
class Person
{
String name;
public void show().........功能内部没有访问到非静态数据,此时为name,那么就定义为静态:
{ public void show()
System.out.println("haha");
}
}
二、主函数
主函数是一个特殊的函数,可以被jvm调用,作为程序的入口。主函数也是一个静态函数。
static:代表主函数随着类的加载就已经存在了。
main:不是关键字,但是一个特殊的单词,可以被jvm识别
注意:
public static void main(String[] args)
public static void main(int x )
以上两个函数都没有错,后者是主函数的重载。jvm要的主函数只有前者。
对于主函数的认识,可以参考函数建立的方法。
三、练习工具相关知识
1、如果一个类运行的时候,内部有其他类,会在指定目录 set classpath定义下找,如果没有就会在当前目录下找相对应的类的class文件,没有的话就找java文件。
2、设置环境变量 set classpath = .;c:\class 注意加上点号,就是说先在当前目录找,然后在指定目录找。这样不容易丢失。
3、类中的功能不需要对外开放时,注意用private修饰
4、编辑帮助文档,即编写程序说明书
1)描述这个工具类的功能,作者和版本
2)凡是public修饰的功能,都用文档注释所描述
5、每个类中有一个默认的空参数的构造函数,她的权限随着类的变化而变化
6、想类不让外部建立对象,那么私有化它的构造函数 格式为:private 类名(){ } 。
四、静态代码块
格式:static
{
静态代码块中的执行语句;
}
特点:随着类的加载而加载,只执行一次。用于给类进行初始化的。并优先于主函数执行。
class StaticDemo
{
int num=9;
static..................................静态代码块是给类初始化的,类一加载,首先执行。
{
System.out.println("a");
}
{........................................构造代码块是给对象初始化的,一建对象就会运行
System.out.println("b");...................可已访问num, System.out.println("b"+num)。
}
StaticDemo(int x)..............构造函数是给对应对象初始化的,建对象的时候运行
{
System.out.println("c");
}
}
执行顺序为:1、静态代码块-----2、构造代码块------3、构造函数
其中,静态代码块不能调用非静态成员,构造代码块可以访问非静态成员。
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
相关推荐
黑马程序员_毕向东_Java基础视频教程第05天-01-面向对象(概述).avi
1、 面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、 JRE(Java Runtime Environment,Java 运行时环境),它相当于操作系统部分,提供了 Java 程序运 行时所需要的基本条件和许多 Java ...
黑马程序员 - Java基础教学 - 05 - 面向对象(1).doc
传智播客_Java培训_毕向东_Java基础[03-面向对象]系黑马程序员_毕向东_Java基础视频教程
黑马程序员 - Java基础教学 - 08 - 面向对象(4)-多态.doc
含面向对象,异常处理和常用类,线程技术,集合框架,IO操作,网络编程,文件操作,反射机制,
编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。 Java是SUN(Stanford University Network,斯坦福大学网络...是简单易学,完全面向对象,安全可靠,与平台无关的编程语言
黑马程序员 - Java基础教学 - 06 - 面向对象(2) - 关于静态static的那些事.doc
在下载和比较了大量同类书籍后不得不承认孙卫琴老师的这本书循序渐进由浅入深是最好的Java入门教程,同时它的...本资源包含《Java面向对象编程》的电子书,实例源代码,课后题答案等可以说是当前该书最全的资源了。。。
第1章 Java开发入门一.填空题1. 面向对象,SUN 2. JavaSE,JavaEE,JavaME3.面向对象、跨平台性、支持多线程4. JDK5.bin
1、面向对象都有哪些特性以及你对这些特性的理解12 1、 Java 中实现多态的机制是什么 1、 Java 中异常分为哪些种类13 2、 调用下面的方法,得到的
精选12种与多线程和并发处理相关的设计模式 264张图表 + 300段Java示例程序 = 轻松学习多线程编程 日本经典多线程入门书,原版长销11年! 本书适合以下读者阅读 a....b.对Java编程感兴趣的人 ...对面向对象开发感兴趣的人
观看黑马程序员Java零基础视频教学,从60P方法开始总结的知识集合,请使用Xmind打开,如果需要学习请配合视频打开:https://www.bilibili.com/video/BV17F411T7Ao
精选12种与多线程和并发...对面向对象开发感兴趣的人 【电子版来自互联网,仅供预览及学习交流使用,不可用于商业用途,如有版权问题,请联系删除,支持正版,喜欢的请购买正版书籍: https://item.jd.com/12165317.html】
(1)aop:面向切面编程,扩展功能不是修改源代码实现 (2)ioc:控制反转, - 比如有一个类,在类里面有方法(不是静态的方法),调用类里面的方法,创建类的对象,使用对象调用方法,创建类对象的过程,需要new...
提供《Java基础案例教程》-教学PPT,供开发者和初学者进行学习,Java是一种高级计算机语言,它是由SUN公司(已被Oracle公司收购)于1995年5月推出的一种可以编写跨平台应用软件、完全面向对象的程序设计语言。Java...
、Struts2、Spring3.0、Hibernate3.3等技术编写的源代码。 整个项目采用MVC模式,应用Struts Spring Hibernate三个框架实现了一个小区管理系统。分为View层(显示层)、Control层(控制层)、Service 层(业务逻辑...
面向对象的基础核心知识点之一,是日后学习JavaEE,JavaME的必备知识;注重基础的代码实例讲解, 让你轻松的学习Java基础知识,为以后学习铺平道路,打好基础;万丈高楼平地起,希望能帮助你!
Java是一种高性能、跨平台的面向对象编程语言。它由Sun Microsystems(现在是Oracle Corporation)的James Gosling等人在1995年推出,被设计为一种简单、健壮、可移植、多线程、动态的语言。Java的主要特点和优势...
7. 面向对象基础 8. 常用API 9. 综合项目实战 Java加强篇包括: 1. static、单例设计、继承 2. 权限修饰符、常量、枚举、抽象类 3. 多态、内部类、常用API 4. 日期与时间、日期类、包装类、正则表达式、Arrays 类、...