Static关键字:
一、使用static定义属性:
1、使用static关键字声明的属性是全局属性。
2、静态属性和方法可以在没有实例化对象的时候调用。
3、主方法(main方法)也存在static关键字。
4、在写程序时,主方法(main方法)代码越简单越好(代码量越少越好)
5、主方法的含义如下:
.public:表示最大的权限,所有人都可以访问。
.static:因为执行的时候执行的就是类名称,所以表示可以由类名称调用。
.void:因为主方法是一切的起点,所以表示没有返回值。
.main:系统内建的方法名称。
.String[] args:表示字符串数组,用于接收参数。
6、程序在内存划分如下:
1)、栈内存:对象名称,实际上是对象对堆的引用地址;
2)、堆内存:属性;
3)、全局代码区:保存所有的操作方法;
4)、全局数据区:保存所有的static属性;
二、使用static字义方法:
1、方法中加一个static关键字时,便成静态方法。
2、在使用static关键字定义方法时,应注意以下几点:
1)、static的方法只能调用static的属性或方法,不能调用非static的属性或方法。
2)、静态属性和方法在没有实例化对象的时候调用。
3)、而类中的普通方法和普通属性,肯定只有在对象实例化之后才能被调用。
程序开发思路:
1、完成基本功能;
2、改善功能,加入一些验证;
3、形成更好的结构,加入一些类的设计;
4、主方法中不能编写过多代码。
一、this关键字的使用:
1、this在java中表示出以下的概念:
1)、调用类中的属性:this.属性
2)、调用类中的方法:this.方法()
3)、调用类中的构造方法:this()
4)、表示当前对象:this
二、记住以下两点:(重点)
1、所有的构造方法应该是对象操作前最早调用的,所以使用this调用构造方法的时候所有的代码必须放在构造方法的首行。
2、在使用this调用构造方法时候至少有一个构造方法是没有使用this()调用的,而此构造方法将做为调用的出口,一般这个出口都会使用无参构造完成。
三、this有一个最重要的概念----当前对象,当前正在调用类中方法的对象,叫做当前对象。
一、线程:
1、线程的基本概念:线程是一个程序里面不同的执行路径。(或线程是一个程序内部的顺序控制流。)
2、main()方法叫主线程(主分支-->一个分支就是一个线程)。
3、进程:
进程是一个静态的概念。
4、在同一时间,一个CPU只能支持一个线程在执行。
5、Java的线程是通过java.lang.Thread类来实现的。
6、可以通过创建一个Thread的实例来创建新的线程。
7、可以通过Thread类的Start()方法来启动线程。
二、创建线程的两种方式:
1、使用实现Runnable接口方式(建议能使用接口时便使用接口方式)
2、使用继承Thread类方式(继承方式是死的)
sleep()方法-->>Thread类的静态方法
3、线程的优先级是用数字表示,范围从1到10,一个线程的缺省优先级是5。
可使用下述方法获得或设置线程对象的优先级:
int getPriority();
void setPriority(int newPriority);
一、JDK1.5之后新特性对数组的支持:
1、foreach输出;
2、可变参数。
1、foreach输出的语法如下:
for(int i :数组名称){
}
2、可变参数:
(1)、定义:正常情况下,一个方法在调用时必须明确的指定传入的参数,而且参数的个数必须统一,但是在JDK1.5之后,在声明方法参数的时候加入了可变参数。
例:
public class Test {
public static void main(String[] args){
int[] temp={1,2,4,5,6}; // 声明一个数组
print(); //无参数
print(1); //一个参数
print(1,2,3,4); //多个参数
print(temp); //传入数组作为参数
}
public static void print(int ...y){ //y前面的“.”符号只能是3个,不能多,也不能少!
for(int x : y){ // foreach输出
System.out.print(x);
}
}
}
二、数组之间拷贝:
System.arraycopy(源数组名称,下标,目标数组名称,下标,拷贝的长度);
例:
public class Test2{
public static void main(String[] args){
int[] t1={1,2,3,4,5,6};
int[] t2={11,22,33,44,55,66};
System.arraycopy(t1,0,t2,3,3); //注意:拷贝的长度不能大于(目标数组总长度(这里是6) - 目标下标(这里是3))的长度,否则会报数组下标溢出。
for(int i:t1){
System.out.print(i+" ");
}
}
}
输出的结果为:11 22 33 1 2 3
成功的公式:成功=知识+人脉。
30%的成功人每天都在做同一件事情,就是在不断提升自己知识的同时,建立新的人脉关系。
成功的关键:
第一:强烈的动机;
第二:有坚定的信念。
第三:他们相信成功者愿意做别人不愿意做的事、别人不敢做的事、别人做不到的事。
成功的必备的两大条件:
第一、拥有良好的态度(占100%);
第二、有一流的技巧与能力(占100%)。
重要知识点总结如下:
1,抽象,封装,继承,多态是面向对象程序设计中得四个特点.
2,面向对象的软件开发大体分为:面向对象的分析,面向对象的设计,面向对象的实现.
可概括为如下过程:分析用户需求,从问题中抽取对象模型;细化模型,设计类,包括类的属性和类间的
相互关系,同时观察是否有可以直接引用的已有类或部件;选定一种面向对象的编程语言,具体编码实现
上一阶段类的设计,并在开发过程中引入测试,完善整个解决方案.
3,面向对象程序设计方法的优点是:可重用性,可扩展性,可管理性.
4,类的定义:class前的修饰符分为访问控制符和非访问控制符两大类.访问控制符包括public和private.
非访问控制符包括abstract(抽象),final(最终).
5,final类是最终类,是不能有子类的类.abstract和final不能同时修饰一个类,因为抽象类本身没有具体对象,
需要派生出子类后在创建子类的对象.而最终类不可能有子类.
6,创建对象的格式为: 类名 对象名=new 构造方法(参数);注意前面是类名后面是构造方法.
注意构造方法没有返回类型,也不能写void,主要用于完成类对象的初始化工作,一般不能直接由编程
直接调用,而是用new运算符来调用.
7,如果class前面由public修饰符,则默认构造方法的前面也应该有public修饰符.
8,类中有static修饰的域或方法,可用类名或对象名访问,否则只能用对象名访问.
9,修饰域的访问控制符可以是:public,private,protected,private protected.非访问控制符可以是:
static,final,volatile(易失域)
10,类变量的最本质的特点是:他们是类的域,不属于任何一个类的具体对象实例.不是保存在某个对象实例的内存空间中,而是保存在类的内存区域的公共存储单元中.
11,局部变量是在方法体内声明的,只有当方法被调用时他们才存在,因而只能在本方法内使用,不存在访问控制符,也不能声明为静态变量(static),但可以声明为final变量.局部变量必须初始化.
12,修饰方法的访问控制符可以是:public,private,protected,private
protected,修饰方法的非访问控制符可以是:static,final,abstract,native(本地方法),synchronized(同步方法)。
13,用static修饰的变量或方法都为类成员,类成员可以用类名或实例名访问,实例成员只能用实例名来访问。
14,如果一个类中含有抽象方法,则此类必须为抽象类,如果抽象类的子类不为抽象类,则子类必须实现父类的所有抽象方法。抽象方法不能用静态方法和最终方法。抽想方法只有函数头的声明,而用分号来替代方法体,没有大括号。如abstract
void abstractmethod();
15,this变量用在一个方法的内部,指向当前对象,当前对象指的是调用当前正在执行的方法的那个对象。super变量是直接指向父类的构造方法,用来引用父类种的变量和方法。(由于他们指的是对象,所以不能通过它来引用类变量和类方法)
16,如果要引用一个包中的多个类,可以用星号来代替。使用星号只能表示本层次的所有类,而不包括子层次下的类。所以经常需要用两条语句来引入两个层次的类:import
java.awt.*;import java.awt.event.*;
17,访问修饰符:
--类中限定为public的成员可以被所有的类访问。
--类中先定位private的成员只能被这个类本身访问。同一个类的不同对象可以访问对方的private域变量或调用对方的域方法,这是因为访问保护控制在类的级别上,而不是对象的级别上。
--类中限定为protected的成员可以被这个类本身,它的子类(包括同一个包中和不同包中的子类),以及同一个包中的其他类访问。
--用private protected修饰的成员可以被该类本身访问,也可以被该类的所有子类访问。
--默认访问控制符规定只能被同一个包中的类访问和引用,而不能被其他包的类访问。即他的访问权限是friendly。
18,注意:
----abstract和private,static,final,native不能并列修饰同一个方法。
----abstract类中不能有private修饰的域和方法
----static方法不能处理非static的域。
19,重载方法的参数必须不同,或者是参数个数不同,或者是参数类型不同。重载的多个方法必须返回相同的数据类型。
20,在java中,一个类获取某一接口定义的功能并不是通过直接继承这个接口的属性和方法来实现的。因为接口中的属性都是常量,接口的方法都是没有方法体的抽象方法,没有具体定义操作。