第一篇:01-Excel VBA 学习总结 - 基础知识
Excel VBA 学习总结-基础知识
1.什么是VBA?
当前辈们使用Excel的时候,他们惊奇的发现:Excel那是相当的彪悍,几乎任何的数据分析与处理,它都可以“近乎完美”(实际上不可能完美)完成。但是在使用的过程中,他们也同样发现,有很多工作是要重复做的。如果要想自动重复的完成这些工作,必须要借助其他的编程语言和工具。微软为了简化这个过程,开发了一个通用的自动化语言,这个就是VBA(Visual Basic for Application)。所有支持VBA的应用程序都可以方便的自动化执行某些固定的步骤,除此以外,支持VBA的应用程序之间也可以通过VBA这个平台进行互操作。由于这里讨论的是Excel中的VBA,所以我后面的总结内容都是以Excel中的VBA为主。
VBA是VB的一个子集,它们之间有些地方是不同的:
VB程序可以独立的部署和运行,但是VBA程序不能离开宿主
程序运行。
VB程序是一个编译型的语言,程序需要编译后执行,而VBA
程序是解释执行的脚本语言。
通过VBA这个工具,Excel就可以完成许多自动化的任务,并且可以充分利用Office其它组件的功能。
2.VBA能做什么?
知道了VBA是什么东东后,那么它能干什么呢?确定的说,VBA基本能做一切Excel能做的事,比如打印,生成报表,分析数据,生成图表等,这是VBA最大的优点。不需要额外实现这些标准的功能,只需要简单的调用就可以了,Excel已经做好了一切准备。除了这个好处,VBA其实还能处理很多的任务:
自定义Excel的外观,菜单,工具栏等。
重复执行自动化操作。
操作文件和文件夹
访问数据库并执行相关操作
访问网络
操作XML
获取系统信息
操作和自动化Office其它组件(支持VBA的其他公司的产品也可
以操作)
除了上述的任务外,VBA还有很多其它的功能有待发掘。
3.VBA与Macro
Macro是一组Excel能理解并执行的命令集合。借助宏录制器,我们能得到这些宏命令翻译后的VBA代码。这是最简洁获得VBA代码的方式,也是VBA开发最主要的模式。
4.VBA小结
VBA的语法很简单,这里就不再详述了。我个人学习新语言的习惯都是,先了解一下这个语言出现的背景,然后了解一下语言改进的地方,最后是实践一下基本的语法,研究语言运行的机制和部署情况。经过这个步骤以后,我就做几个实际小例子巩固巩固。我学习VBA的小结如下:
Module是VBA组织代码的最小单元。
VBA是不分大小写的,所以更要养成良好的编程习惯。
代码可以一行写多句,用“:”隔开,也可以一句写在多行,行末
用“_”标识。
Module成员的访问限定:
Public: 当前程序中的所有模块都可以访问该成员,如果方法默认不加限定符的话,当Public处理;Public成员只能在Module中定义。
Dim/Private:只有本Module内部的所有方法才能访问这些成员。当然方法是不能用Dim定义的。
Friend:只能用于对象模块或者窗体模块,作用范围是当前程序中的其他对象模块可以访问该成员。
Const定义恒定变量的时候,只能在Module中定义,不能在方
法内定义;前面可以加Public/Private限定。
有一点比较恶心,对象赋值用“Set...=”,其余的一切赋值用“=”,包括对象的属性赋值。
可以使用Type在模块级别中定义包含一个或多个元素的用户自定义的数据类型。
根据使用情况(比如需要的存储大小)选用合适的变量类型,一般
都应该明确定义变量类型,不要使用默认的Variant类型。
当需要使用变长集合的时候,可以考虑使用动态数组(使用ReD
im和Preserve)。
Nothing、Empty与Null的比较:
Nothing:这是一个指向空对象的对象引用。将对象引用设置为Nothing,就释放了那个对象。如果没有其他的引用指向对象,VB/VBA就将销毁这个对象。可以使用“Obj is Nothing”的方式检查。
Empty:这是一个象Integer或者String一样的变量类型,它表示了一个还没有进行初始化的变量。它与Null的意义不同,Null表示没有合法数据。例如数组,集合刚定义,还没有赋值之前就是这个状态,可以使用内置方法IsEmpty检查。
Null:这是一个象Integer或者String一样的变量类型,它表示一个没有合法数据的变量。这有别于zero、Nothing、Empty或者vbNullString。Null参与的运算,都将产生Null结果。可以用内置方法IsNull检查。
使用“For Each”语句枚举集合成员。
使用“For”语句执行固定次数的循环。
使用“Do While/Until...Loop”或者“While...Wend”语句执行不定次数的循环。
使用“If”语句执行2分支的选择。
使用“Switch Case”语句执行n分支的选择。
使用“With”语句减少重复对象的书写。
在Module开始的时候,加上“Option Explicit”可以强制变量使用前必须声明。
类型定义的简短写法:例如定义整形,可简写为:Dim i%Integer %
Long &
Single!
Double #
Currency @
String $
String*size $
方法调用可以加括号,也可以不加括号;如果要是加括号,特别
是含有多个参数的时候,则前面需要加上“Call”。
方法是支持可选参数的,参数前用“Optional”标识并用“=”提供默认值。可选参数用“参数名:=值”的方式传值特别方便。
连接多个变量时,尽量使用强制连接符“&”,少使用混和连接符“
+”。
在合适的时候,尽量多使用位操作(XOR,OR,AND,NOT)等完成多个Boolean类型的相关判断与操作,而不是直接使用“IF”判断。
最重要的两点:当你不知道如何下手的时候,请尝试录一个宏
看看;批判吸收多个人的知识,并不是所有写出来的都是对的,实践是检验真理的唯一标准。
第二篇:JAVA基础知识学习技巧总结
JAVA学习交流群:514167678 JAVA基础知识学习技巧总结
JAVA学习交流群:514167678 在这里给大家整理了一篇JAVA的学习小技巧,希望能给大家带来帮助。
1、byte通常用来进行位运算,位宽度窄,一般不用来计算
2、关键字都是小写的,在eclipse中显示为红色。
3、变量给了缺省的初始值,C语言没给,只给分配了空间,里面的数不确定
4、char的缺省值是ASCII码中第1个
5、运行效率:i++>i+=1>i=i+1
6、布尔值不能进行大小比较,只能进行==比较
7、先算&&再算||。另外&&为短路与的意思。例1:判断以下i的变化。
int i=2,j=3;
boolean b=i>j && i++>2;
System.out.println(i);答案:2
例2:以下在a,b,i不知道的情况下,判断真还是假。((a>b)||((3-2)>2))||(5>2)&&(true||(++i>2))答案:真
8、>>带符号右移,前面移空的位置添加符号位相同的数
0|001 1000 右移两位(正数)
0|000 0110 1|001 1000 右移两位(负数)
1|111 1100
>>>带符号右移,前面移空的位置添加0
9、获得-5到2的随机数
int i;
Random r=new Random();
i=r.nextInt();
// i=Math.abs(i%10)+1;//获得0到10的随机数
i=Math.abs(i%8)-5;//获得-5到-2的随机数
System.out.println(i);
10、数组创建时,大小(内存)可以是前面的变量.可以动态创建数组的大小(内存),创建后就不能再改大小.例:
int t=9;
int[][] jiu;
jiu=new int[t][];
JAVA学习交流群:514167678
11、变量的作用域。
定义的数个变量其实是放在一个栈的结构中,后定义的变量先消失,先定义的变量后消失,作用域比后定义的变量大。
12、.基本数据类型参数的传递是值传递, 引用....................址传递.class Length{ int length;} class People{
void walk(Length length){
length.length=+=2;} public satic void main(String[] args){
Length l=new Length();
l.length=20;
new People().walk(l);
System.out.println(l.length);} }
13、方法的重载,不能通过返回值类型不同来区别,只能通过参数的不同来区别.14、方法或变量加static和
不加static的方法,是类的对象的方法.对象消失,方法消失
加static的方法,是类的方法.对象消失,方法存在.方法的地址是静态的与类绑定
变量和上面也一样.15、静态方法,只能访问类的静态成员和该方法的成员
16、JAVA不支持多重继承,类似一个树,一个类只有一个父类,但可以有多个接口
C++支持多重继承,类似一个网,一个类可以有多个父类
17、子类默认调用了父类无参构造函数.如果父类没有无参构造函数,必须手动重写子类的构造方法,并用super(参数)调用父类中有参构造的方法.例: class People{ private int age;public People(int age){
this.age=age;} } class Doctor extends People{ //不写以下构造方法则出错.public Doctor(){
super(23);}
JAVA学习交流群:514167678 //或者
public Doctor(int age){
super(age);} } 解决方法:在写类的有参构造方法时,最好定义个无参的构造方法.18、构造方法调用父类的构造方法super()前不能有其他的语句.19、final可以修饰形式参数,防止被改 例:
void walk(final int length){
}
20、import导入包的理解,重要的事情总要放到前面
21、private与abstract冲突,原因:子类实现(继承)不了接口(抽象类)中被private修饰的成员,但接口(抽象类)中的方法必须要重写,加private就没办法重写了 例:
interface InterfaceTest { int f();private abstract int ff();//此句错误,要去掉private }
22、内部类可以被外部使用,可以访问外部类(宿主类)的privite成员;内部类成员加public也可以被外部访问,但也危险,定义成private外部不能访问此类了(常用).public class OutClass { private int i=2;public class InnerClass{
public int j=i;} }
23、抽象类不用继承也能用 例:
abstract class Out2{ private int i=2;public abstract int f();public static Out2 getInstance(){
return new Inner2();} private static class Inner2 extends Out2{//static
public int f(){
return 2;
} } public static void main(String[] args){
JAVA学习交流群:514167678
Out2 ou=Out2.getInstance();//抽象类不用继承也能用,获得此类的实例
int i=ou.f();
System.out.println(i);} }
24、接口里也可以定义类(内隐类)例:
interface InterfaceTest { int f();class A{
int f(){
return 2;
} } }
25、内部类的使用.类NoNameInnerClass 不用implements实现接口,而用传递进来对象来用接口
interface Inter{ void paint();} public class NoNameInnerClass { public void paint(Inter p){//传递进来对象来用接口
p.paint();} public void func(){
//为了获得对象,定义一个内部类,把此对象做参数
class Paint implements Inter{
public void paint(){
System.out.println(“paint.”);
}
}
Paint p=new Paint();
paint(p);} }
26、内部类的使用.不用类名,直接创建对象,无名内隐类,类名是他实现的接口名字 interface Inter{ void paint();} public class NoNameInnerClass { public void paint(Inter p){//传递进来对象来用接口
p.paint();
JAVA学习交流群:514167678 } public void func(){
//直接创建对象,无名内隐类,类名是他实现的接口名字,paint(new Inter(){
public void paint(){
}
});} }
27、单态设计模式。能够创建类的唯一实例。把构造方法定义成private,再创建静态的成员方法getInstance()获得此类唯一实例.例1.public class ChineseTest{
public static void main(String[] args){
Chinese Obj1 = Chinese.getInstance();
Chinese Obj2 = Chinese.getInstance();
System.out.println(Obj1 == Obj2);
} } class Chinese {
private static Chinese objRef = new Chinese();
private Chinese(){
}
public static Chinese getInstance(){
return objRef;
} } 例2:
public class ChineseTest{
public static void main(String[] args){
Chinese Obj1 = Chinese.getInstance();
Chinese Obj2 = Chinese.getInstance();
System.out.println(Obj1 == Obj2);
} } class Chinese {
private static Chinese objRef;
private Chinese(){
} }
JAVA学习交流群:514167678
28、泛型应用
Vector
Vector
v.add(“aaa”);
v.add(“bbb”);
System.out.println(v.get(0));
29、如果一个方法可能有异常,则用throw new Exception(“")来抛出异常
如果方法内用throw抛出异常,则此方法头后必须用throws(多个s)声明可能会抛出异常。
如果一个方法头后用throws声明可能会抛出异常,则此方法在用的时候必须用try-catch语句 例:
public class Lx_Yichang { static int div(int x,int y)throws Exception{
if(y==0){
throw new Exception(”除数不能为0!!“);//方法内用throw抛出异常
}else{
return x/y;
} } public static void main(String[] args){
try{//用try-catch语句
int z=0;
z=Lx_Yichang.div(10, 0);
System.out.println(z);
}
catch(Exception ex){
System.out.println(ex.toString());
ex.printStackTrace();
}
finally{
System.out.println(”End!“);
} } }
30、Hashtable类应用,可以通过get(键)或get(hashCode)来获得值内容。import java.util.Hashtable;class PhoneList{ String name;String phoneNumber;public PhoneList(String name,String phoneNumber){
this.name=name;
JAVA学习交流群:514167678
this.phoneNumber=phoneNumber;} } public class HashtableTest { public static void main(String[] args){
//利用泛型
Hashtable
hashTable.put(”wang0“,new PhoneList(”wang“,”0000000“));
hashTable.put(”wang1“,new PhoneList(”wang“,”1111111“));
hashTable.put(”wang2“,new PhoneList(”wang“,”2222222“));
hashTable.put(”wang3“,new PhoneList(”wang“,”3333333“));
System.out.println(hashTable.get(”wang2“).phoneNumber);
//不利用泛型
Hashtable hash=new Hashtable();
hash.put(”wang0“,new PhoneList(”wang“,”0000000“));
hash.put(”wang1“,new PhoneList(”wang“,”1111111“));
hash.put(”wang2“,new PhoneList(”wang“,”2222222“));
hash.put(”wang3“,new PhoneList(”wang“,”3333333“));
//System.out.println(((PhoneList)hash.get(”wang2“)).phoneNumber);//不用泛型,需要强制类型转换
//强制类型转换时,最好先进行类型判断
Object o=hash.get(”wang2“);
if(o instanceof PhoneList){
System.out.println(((PhoneList)o).phoneNumber);
}
//利用hashcode
Hashtable
PhoneList p1=new PhoneList(”wang2“,”888888888888“);
table.put(new Integer(p1.hashCode()), p1);
System.out.println(table.get(new Integer(p1.hashCode())).phoneNumber);
} }
31、提供一个关于游戏的简短描述,网页,游戏名称,提供商,金钱初始值等等。这些数据可以置于.jad文件中。
打包后是放在JAR的META-INF文件夹里。用MIDlet类的getAppProperty(String key)来获得其中的值.32、Canvas 的hideNotify()里写暂停的代码。showNotify()写继续游戏的代码。来电话时自动调用hideNotify()。pauseApp也可以实现,但有的手机不支持如Nokia手机
34、运行提示ALERT: java/lang/ClassFormatError: Bad version information.原因
原因:当前编译器的版本过高。
JAVA学习交流群:514167678
解决方法: 编译器的版本不要过高否则有的手机不认,选择编译器方法:点项目右键属性->Java Compiler-> Enable project specific settings打勾,然后选择版本较低的编译器
35、把所有的引用都设置为null才可以变为垃圾
Hero h=new Hero();
Hero h2=h;
h=null;//此时,h并没变为垃圾,因为还有h2指向它,需要把h2也设置为null,h才变为垃圾
h2=null;
36、去掉无用包(ctrl+shift+0).或右键->Source->Organize Imports
37、WTK2.5的安装后,ECLIPSE的设置
Window->Preferences->Device Management->Import->找到WTK的安装路径
38、添加资源文件夹名
在项目上右键->Properties->双击Java Build Path->点Add Foler->在下面的选项中选择update exclusion filters in other source folders to solve nesting,再添入资源文件夹名,如src、res等。
39、添加抽象类、接口中的方法。
例如对继承Canvas类,需要添加protected void keyPressed(int keyCode){}方法时.在代码上右键->Source->选择Override/Implements Methods->在窗口中,对要重写的方法打勾->Ok。
40、在for语句中,第2个循环条件可以和逻辑表达试取与 例:
for(int i=0;i<100 && i%2==0;i++)
41、DataInputStream包装FileInputStream后,底层操作文件,上层按指定格式输出(最易使用)
42、FileInputStream的应用 例:
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;public class PekingFileInputStreamTest1 { public static void main(String[] args){
try {
//在项目根目录里创建文件fileInputStream.txt
File file=new File(”fileInputStream.txt“);
FileOutputStream fout=new FileOutputStream(file);
fout.write(65);
fout.close();//输出到文件完毕后关闭
//开始读
FileInputStream fin=new FileInputStream(”fileInputStream.txt“);8
JAVA学习交流群:514167678
int b=fin.read();
System.out.println(b);
fin.close();
} catch(Exception e){ // TODO: handle exception e.printStackTrace();
} } }
43、利用DataOutputStream包装FileInputStream按指定格式输出 例:
import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.FileInputStream;public class PekingFileInputStreamTest2 { public static void main(String[] args){
try {
//在项目根目录里创建文件fileInputStream.txt
File file=new File(”fileInputStream.txt“);
FileOutputStream fout=new FileOutputStream(file);
//包装下按指定格式输出
DataOutputStream dout=new DataOutputStream(fout);//子类fout做参数传给父类,子类当父类用
dout.writeInt(8793);
dout.writeUTF(”感动中国“);
dout.close();
fout.close();
//开始读
FileInputStream fin=new FileInputStream(”fileInputStream.txt“);
DataInputStream din=new DataInputStream(fin);
int b=din.readInt();
String s=din.readUTF();
System.out.println(b);
System.out.println(s);
din.close();
fin.close();
} catch(Exception e){
e.printStackTrace();
} 9
JAVA学习交流群:514167678 } }
44、利用PrintWriter包装三次的例子。
PrintWriter包装OutputStreamWriter,OutputStreamWriter包装FileOutputStream,FileOutputStream包装File import java.io.File;import java.io.FileOutputStream;import java.io.OutputStreamWriter;import java.io.PrintWriter;public class PekingFileInputStreamTest3 { public static void main(String[] args){
try {
//在项目根目录里创建文件fileInputStream.txt
File file=new File(”fileInputStream.txt“);//
FileOutputStream fout=new FileOutputStream(file);
//
OutputStreamWriter osw=new OutputStreamWriter(fout);//测试字符流//字符流通向字节流的桥梁
//
PrintWriter pw=new PrintWriter(osw);//包装三次
PrintWriter pw=new PrintWriter(new OutputStreamWriter(new FileOutputStream(file)));
//开始读
pw.println(”窗前名月光,“);
pw.println(”疑是地上霜.“);
pw.println(”抬头望明月,“);
pw.println(”低头思故乡。");
pw.flush();
} catch(Exception e){
e.printStackTrace();
} } } 更上一层楼,可以进群交流!
第三篇:培训期间学习的java基础知识总结
final定义常量:
如果放到主函数外则需要publicstatic final
如果放到主函数内部则不需要public static final
float 表示的变量后面必须跟个f表示单精度小数
运算符:
++(--)在前时先运算在取值,在后时先取值在运算。
if else的分支顺序不能颠倒
switch分句后面的default可以省略但不推荐省略。
基本数据类型放在栈里,引用数据类型放在堆里
studentstu =newstudent则stu放在栈里,student放在堆里
StringBuffer是线程安全的使用场景:经常对字符串进行修改操作时,并且需要线程安全时
StringBuilder和stringbuffer类似,是非安全版本
缺点:
不支持线程安全
优点:
在不要求多线程安全情况下性能高
使用场景:经常对字符串进行修改操作,不需要多线程安全时使用
对象和类:
如果为public则在此可以直接赋值如果为private则必须通过setter赋值
public修饰的在其他包内依然可见,private修饰的是私有类,只能在自身类内部可见
面向对象的三个特征:封装(数据的抽象)、继承、多态
多态:有多个子类,每个子类调用相同的方法做出不同的反应
例cut()方法:
如果理发师则理发
如果是厨师则切菜
尽管一个子类从父类继承所有的方法和变量,但它不继承构造函数。
下述规则适合覆盖的方法
覆盖方法的返回类型必须与它所覆盖的方法相同
覆盖方法不能让它所覆盖的方法访问性差
覆盖方法不能比它所覆盖的方法抛出更多异常
抽象类无法实例化,抽象类可以没有抽象方法
线程同步
关于锁和同步,有一下几个要点:
1)、只能同步方法,而不能同步变量和类;
2)、每个对象只有一个锁;当提到同步时,应该清楚在什么上同步?也就是说,在哪个对象上同步?
3)、不必同步类中所有的方法,类可以同时拥有同步和非同步方法。
4)、如果两个线程要执行一个类中的synchronized方法,并且两个线程使用相同的实例来调用方法,那么一次只能有一个线程能够执行方法,另一个需要等待,直到锁被释放。也就是说:如果一个线程在对象上获得一个锁,就没有任何其他线程可以进入(该对象的)类中的任何一个同步方法。
5)、如果线程拥有同步和非同步方法,则非同步方法可以被多个线程自由访问而不受锁的限制。
6)、线程睡眠时,它所持的任何锁都不会释放。
7)、线程可以获得多个锁。比如,在一个对象的同步方法里面调用另外一个对象的同步方法,则获取了两个对象的同步锁。
8)、同步损害并发性,应该尽可能缩小同步范围。同步不但可以同步整个方法,还可以同步方法中一部分代码块。
9)、在使用同步代码块时候,应该指定在哪个对象上同步,也就是说要获取哪个对象的锁。
css样式表:
# 是div选择器div
“.”是类选择器class
“li”属于标签选择器
第四篇:防冻液基础知识学习
关于防冻液项目基础认识
车用防冻液是汽车护理品系统比较常见的产品之一,就如我们做压缩机的508一样,竞争大,量大。但是很多护理产品都是靠防冻液延伸产品的渠道。汽车护理品作为汽车后市场的三大板块之一,汽车用品市场也是目前发展最快、前景最好的行业之一。近年伴随着我国汽车工业的井喷式发展,汽车用品行业发展速度一日千里,2010年中国汽车用品市场总产值已超过4000亿元。
近年来中国政府逐渐重视汽车用品行业,积极推进汽车用品的产业化,鼓励汽车用品行业特别是技术术创新,政府也在逐步完善汽车用品行业的相关法规及标准,为汽车用品企业的发展提供有序的竞争环境。同时汽车用品企业也应不断自主创新,引进和培养专业人才,抓住汽车用品行业的发展机遇。
根据汽车发达国家的经验,汽车后市场的利润可占整个汽车产业利润总和的60%~70%,而汽车用品作为汽车后市场的三大板块之一,盈利空间也相当广阔。
中国汽车用品行业的发展潜力很大,未来几年,汽车用品将进入高增长的阶段。预计到2015年,汽车用品产业新增市场份额将达1500亿元,市场总产值有望达到6000亿元。最典型的汽车护理品包含汽车防冻液、冷媒、玻璃水、发动机保护液、刹车油、空调系统清洗液、车用香水等。随着人们生活水平提高,私家车汽车保有量的增加,女士车主的增加,更主要是大家保养意识的增加,这个就如女士保养一样,现在80%的女士多少都对自己进行一定的保养,以后的汽车80%以上的人也会在意这些保养。以前女士一样是香皂、大宝等,现在这些他们就淘汰了,他们就用比较高档的护理品,汽车护理品一样现在是用便宜的、普通的。以后他们也会逐步使用好的。因此这个市场潜力非常大。
赛孚汽配最终的目标是通过渠道资源来进行品牌的推广,主要工作就是负责渠道的建设、管理工作,而汽车护理品也是赛孚系统非常希望作为一个关键的项目来做,一是因为他发展潜力大,二是因为他不退货,直接的消费品,而且可以发展到如女士用的皮肤护理品一样,让他真正深入心中。销售护理品定位是非常重要的,特别是一开始非常主要,大家可以看看现在女士用的就知道,便宜的就很难销售好,大宝虽然公认的好,但是使用的人很少。而且舍得保养的人都是使用比较好的。我看了很多资料,不管是身体护理,还是汽车护理都是需要一个过程,例如:中国女士护理流行是在90年代中期开始,先是从头发开始,拉直、染、烫、现在是造型等,然后才是脸部护理,祛斑、美白、去皱纹等、然后才到美体、从表面的美容,到整个外部的美体(背部、胸部、腿部等),再到后面是内部护理(口腔、卵巢等),这些是根据人的思想开放程度、人的观念、个人的收入、从事的职业、个人爱好等来分步改善的过程,但是现在社会整个会推动人们的思想进步、观念也在不断提升、经济收入在不断增加,逐步高端产品会得到增加,因为越是到后面,到关键的位置,对品质、品牌的要求越高,我们利润也就越高。因此,整个项目是前瞻项目。
护理品项目人员要求是对产品懂,而且要定位是非常关键的。特别是在市场操作上要独特,要体现高贵的价值。而我们赛孚汽配运行了2年的防冻液、3年的冷媒项目,都不成功。当然不成功不是我们销售人员全部的责任,和定位、规划有很大关系,当然我们销售也存在一定问题,我们不懂产品知识,冷媒的功能、他的作用、他的含量、R12的弊端、134A与R12的区别,国家为什么要推广134A,R12对系统有哪些影响,R12替代品的危害,134A原料成本价格,怎么判断134A真假、国内冷媒企业的基本情况、等。
现在我们防冻液即将开始推广,所以我将一些基本上的情况写给大家,希望对大家有一些帮助,我也是何大家一样同时开始接触这个产品,希望大家多学习,一定要掌握基础知识,你跑业务才能比别人专业一些,才体现你的业务价值和区别。你不了解他,你就只能去谈价格,谈服务等这些虚拟、很通俗的技能,不能给客户带去更有价值的东西。
内燃车辆的发动机冷却系统是一个由汽缸、夹套与水箱组成的液冷式密闭循环体系。冷却系统的工作状态直接影响车辆的正常运行及车辆的使用寿命。防冻液是内燃机循环冷却系统的冷却介质,主要由防冻剂、缓蚀剂、消泡剂、着色剂、防霉剂、缓冲剂等组成。随着汽车工业的发展,对发动机的性能要求也越来越高,不仅要求防冻液具有较低的冰点和较高的沸点,还应具有较好的金属防腐性、防气蚀性、防结垢性,以及对环境污染小或不污染环境,且有较长的使用寿命等等方面的综合性能。
各国对此都做了大量的研究,不断推出配方专利和优良的防冻液商品。一些先进国家的防冻液普及率达到了100 %。国内防冻液的普及率较低,防冻液有相当数量是进口的,由于价格较高,一般用于进口车辆。虽然近年来国产防冻液生产增长很快,但不少产品由于缺乏严格的质量检验和统一的检验标准。
防冻液的种类: 乙二醇一水防冻液
乙二醇是一种无色微粘的液体,沸点是197.4℃,冰点是-11.5℃,能与水任意比例混合。混合后由于改变了冷却水的蒸气压,冰点显著降低。其降低的程度在一定范围内随乙二醇的含量增加而下降。当乙二醇的含量为68%时,冰点可降低至-68℃,超过这个极限时,冰点反而要上升。乙二醇防冻液在使用中易生成酸性物质,对金属有腐蚀作用。因此,应加入适量磷酸氢二钠等以防腐蚀。乙二醇有毒,但由于其沸点高,不会产生蒸气被人吸入体内而引起中毒。乙二醇的吸水性强,储存的容器应密封,以防吸水后溢出。由于水的沸点比乙二醇低,使用中被蒸发的是水,当缺少冷却液时,只要加入净水就行了。这种防冻液用后能回收(防止混入石油产品),经过沉淀、过滤,加水调整浓度,补加防腐剂,还可继续使用,一般可用3—5年。二甘醇—水防冻液
二甘醇—水防冻液,不宜挥发和着火,对金属腐蚀性也较小,但二甘醇降低冰点的效果比乙二醇低,配制同一冰点的防冻液时,比乙二醇的用量大,同时热传导效率下降。有不少厂家为了降低成本,会将乙二醇和二甘醇混用。
甘油—水防冻液甘油—水防冻液,不宜挥发和着火,对金属腐蚀性也小,但甘油降低冰点的效率低,配制同一冰点的防冻液时,比乙二醇、酒精的用量大。因此,这种防冻液用得较少。酒精一水防冻液
酒精的沸点是78.3℃,冰点是-114℃。酒清与水可任意比例混合,组成不同冰点的防冻液。酒精的含量越多,冰点越低。酒精是易燃品,当防冻液中的酒精含量达到40%以上时,就容易产生酒精蒸气而着火。因此,防冻液中的酒精含量不宜超过40%,冰点限制在-30℃左右。酒精—水防冻液具有流动性好、散热快、取材方便、配制简单等优点。它的缺点是容易着火,酒精沸点低,蒸发损失大。酒精蒸发后,防冻液成分改变,冰点升高。在山区、高原地区行驶的汽车不宜使用酒精—水防冻液,因为酒精的蒸发损失大。一般地区行车应定期检测酒精的含量,及时补充。
除防冻外,防冻液还具有以下几种优点:
第一个是防腐蚀功能。发动机及其冷却系统是金属制造的,有铜、有铁、有铝、有钢还有焊锡。这些金属在高温下与水接触,时间长了都会遭到腐蚀,会生锈。而防冻液不仅不会对发动机冷却系统造成腐蚀,还具有防腐和除锈功能。
第二个是防冻液的沸点高。水的沸点是100℃,优质防冻冷却液的沸点通常在零上110℃,这样在夏季使用,防冻冷却液比水更难开锅。
第三是防冻液可以防垢,用水作冷却液最让司机头疼的就是水垢问题,水垢附着在水箱、水套的金属表面,使散热效果越来越差,而且清除起来也很困难。优质的防冻液采用蒸馏水制造,并加有防垢添加剂,不但不生水垢还具有除垢功能。当然,如果你的水箱水垢很厚,最好还是先用水箱清洗剂彻底清洗后再添加防冻液。
在水冷式发动机的冷却水中添加防冻剂配制成的低冰点冷却液体。当气温低于0℃时,使用防冻液可防止因冷却水结冰而引起的冷却系统故障和零件胀裂事故,还可免除收车后放水和出车前再加水等工作。
对防冻液性能的要求是:沸点和闪点高;比热和传导能力大,在低温时粘度小,蒸汽压不高,不易起泡;不致使冷却系统金属件腐蚀和橡胶软管、密封垫变质。目前市场上防冻液产品情况:
目前在后市场防冻液主要是被各大机油企业占比最大,因为防冻液产品本身是石油链上的产物,同时,防冻液销售渠道和油类产品也比较吻合,所以他们占了很大的基础渠道。主要防冻液生产的企业有北京蓝星为行业代表,然后是各大石油企业(美孚、壳牌、昆仑等),委托加工企业典型代表车仆,也是后市场渠道建设最为规范、价格比较高、渠道控制比较好的企业。
防冻液的目标客户:专一做防冻液的代理商、油品及护理品代理商、全车件代理商、汽车水箱代理销售商、汽车护理、保养、维修点。
第五篇:素描学习基础知识
习绘图者必看--素描基础知识
造型基本因素
1、形体的点、线、面
我们所描绘的物体都是立体的,而最基本的形体是立方体、球形、柱体与椎体。素描写生可从这四类形体出发,去研究主体构成的基本因素与形体塑造的关系
点 点表示位置,是形体塑造的标记,对于造型有着特定的数量意义。先看位置点,找出它的基点与顶点、右点、左点、近点和远点,这些点规定着物体的整体范围和个面之间的大小比例关系。再看转折点,这些点如同交通枢纽,联系着形体中的线与面。
线 线由点的定向运动产生。线条是点运动的延续,连接起点和终点的是线,任何一幅素描都是由无数的线组合而成。线是形体塑造的中坚,线有着无穷的魅力。
辅助线 是指在形体塑造的过程中所借助的假设线。这些线,有助于我们把握形体的动势和形体的整体特征,有利于我们表现形体时能做到从整体到局部有序的进行。
轮廓线 轮廓线反映的是形体转折部分。在绘画过程中,轮廓线的表现要求由直线到曲线,有外轮廓到内轮廓,从而形成物体的立体框架。
面 无数点的组合或无数线排列后的效果,在视觉上形成了面,而面运动产生了体。在造型过程中,面可分为两类,即直面与曲面。
直面 立方体在画面上一般是以正面、侧面、顶(底)三个面呈现。
曲面 球体借助于光线,在画面上一般是以亮面、暗面、明暗交界线(面)、反光面和投影组合而成。
任何一种复杂的形体,都可以由立方体、球体体面关系去理解和分析。
2、比例与分割
比例是指物体间或物体各部分的大小、长短、高低、多少、窄宽、厚薄、面积风诸方面的比较。不同的比例关系形成不同的美感,观察与表现比例关系有个较好的方法,如先抓住相比关系因素的两极,再确定中间部分,依次分割下去,就可以确定出任何复杂的比例关系
3、特征与基本形
物体的形体特征,是指物象都有自己的特征,使之相互之间得到区别。我们要对形状进行概括与归纳,形成了一个基本形的概念,如圆形:人脸、苹果、罐子、太阳;方形:课桌、书籍、电视机、房子等,因此可以这样说,抓住了基本形就基本抓住了形体的主要特征。
从形体总体出发,对物体的原形进行简化,省去烦琐的细枝末节,以形成简单的几何形状。首先是抓住它的平面形,是方、是圆还是角;再看它的体积特征,属于立方体、球体还是柱体。在具体作画时,先目测高度,再目测宽度,最后作上、下的宽窄比较,就能把握住形体的基本特征。
4、转折与轮廓
当构成物体的面发生方向上的变化,形体的面就出现了转折。方形物体转折明显,称为折,圆形物体转折缓慢,称为转。一般的物体的边缘可以看作是转折,立方体外缘内的棱为转折,叫内轮廓。球体内侧的明暗交界可视为转折,也属于内轮廓。在造型过程中,当我们以线去体现形体的转折处,即为轮廓线。根据形体转折内外的部位,轮廓线可分为外轮廓线和内轮廓线。在作画起稿过程中,应集中表现物体的轮廓,抓住轮廓的方法可采取由外到里的方法。
5、结构与构成
结构是指物体本身个部分组合和构造。物体都有内部和外部的构成因素和结构关系,个部分的互相连接穿插、重叠、相离等决定了物体的形体。在素描训练中,对结构加进一些主观成分和表现手法,反映在画面上的形体结构,可看作一种构成。
6、透视与空间
一切物象占有一定的空间,物与物之间也存在着一定的空间距离。如画者与写生物的空间距离,被画物体之间的空间距离,被画物本身前后的空间距离,被画主体与背景的空间距离。。在素描中,利用物体的透视变化产生距离感,表现空间的技法,其中最基本的方法是透视原理的运用。几何透视法
几何透视法产成与数学原理,是把几何透视运用到绘画艺术表现之中,是科学与艺术相结合的技法。它主要借助于远大近小的透视现象表现物体的立体感。
平行透视 当立方体的六个面中,有一个面与画者的位置呈平行状态时,画者所看到的是它面产生的透视变化。
平行透视
成角透视 当立方体的一个角正对画者时,立方体所有的面都产生透视变化
成角透视
几何透视法包括三个要素:视平线,一般是指画者平视时与眼睛高度平行的假设线。视平线决定被画物的透视斜度,被画物高于视平线时,透视线向下斜,被画物低于视平线时,透视线向上斜。心点,是指视觉中心。它位于画者的核心部位。在平行透视中,一切透视线引向心点。距点,视点至心点的距离叫距点,如果把视距移至视平线上心点的两侧,所得的点为距点。
空气透视法
空气透视法是借助空气对视觉产生的阻隔作用,表现绘画中空间感的方法。它主要借助于近实远虚的透视现象表现物体的空间感。其特点是产生形的虚实变化,色调的深浅变化,形的平面变化,形的繁简变化。
7、明暗与调子
物体的形象在光的照射下,产生了明暗变化。光源一般有自然光、阳光、灯光(人造光)。由于光的照射角度不同,光源与物体的距离不同,物体的质地不同,物体面的倾斜方向不同,光源的性质不同,物体与画者的距离不同等,都将产生明暗色调的不同感觉。在学习素描中,掌握物体明暗调子的基本规律是非常重要的,物体明暗调子的规律可归纳为“三面五调”
A:三面 物体在受光的照射后,呈现出不同的明暗,受光的一面叫亮面,侧受光的一面叫灰面,背光的一面叫暗面。这就是三面。
B:五调 调子是指画面不同明度的黑白层次。是体面所反映光的数量,也就是面的深浅程度。对调子的层次要善于归纳和概括,不同的素描调子体现的不同的个性、风格、爱好和观念。在三大面中,根据受光的强弱不同,还有很多明显的区别,形成了五个调子。除了亮面的亮调子,灰面的灰调和暗面的暗调之外,暗面由于环境的影响又出现了“反光”。另外在灰面与暗面的交界的地方,它既不受光源的照射,又不受反光的影响,因此挤出了一条最暗的面,叫“明暗交界”。这就是我们常说的“五大调子”。当然实际画起来,不仅仅是这五的调子,还要更丰富。但在初学时,我们起码要把这五种调子把握好。在画面中树立调子的整体感,即画面黑、白、灰的关系,运用好这几大调子来统一画面,表现画面的整体效果。
画面构成
一张白纸无所谓空间,一旦画上了笔触,便破坏了纸面的完整与稳定,即出现画面构图分割现象。若是画上一个物体,纸面就形成了空间,再画上两个以上的物体,就得考虑形体的组合方式。绘画的基本训练是培养大家如何把空间的物体转移到平面的画面上,解决画面构成问题。
1、形体组合与画面切割
同属于绘画的构图问题,构图是画者根据表达的意图与主题的需要,对画面所进行的整体布局。在形体组合这个问题上,我们要注意:(1)不同位置的组合,(2)不同质的组合,(3)不同量的组合。
2、角度确定与空间序列
画者与物体的角度主要有两种,即平行透视和成角透视。画面中造型因素均应按空间位置的变化而变化,为了使画面中造型因素有条不紊,需要物体在特定的角度下形成明确的空间序列。
上面这幅作品由三个立方体构成,并以三角形的三个顶点作为三个立方体的这个整体形状位置,从而形成了三角形的构图。画面图示了三种切割变化形式。(1)框太长(2)框太大(3)框为宜
以上关于素描的基础知识就讲完了,希望大家能认真去体会,并能运用到之后的练习中。这样会使大家事半功倍。
速度重要,方向更重要。
准备好必要的工具了吗?下面我们将进入实质性的素描学习,先从练习线条开始,就象达芬奇当初画鸡蛋一样,我们应该不用象他画那么长时间,因为我们是21世纪的中国有为青年。