1、面向对象over数据类型 1基本数据类型 1引用类型 3控制语句 3顺序结构 3选择结构 3循环结构 4面向对象 5面向过程和面向对象的区别 5类和对象 5成员变量 5方法 5方法的重载(overload) 5构造方法 5内存分析 5package 6import 6this 6static 6super 6面向对象的三大特征 6封装 6继承 6方法的重写(override) 6多态 6抽象类 7接口 7面向接口编程 7数据类型基本数据类型a) 数值型i. 整型1. byte 1个字节(256) -128-1272. short 2个字节(65536) 正负3万3. int 4个字节 正负21
2、亿4. long 8个字节ii. 浮点型1. float 4个字节 2. double 8个字节 注: 类型的自动转换 类型的强制转换/* double d1 = 0.1; double d2 = 0.5-0.4; System.out.println(d2); if(d1=d2) System.out.println(dddd); else System.out.println(eeeee); */ float f1 = 0.134F; float f2 = (float)0.134; double d1 = 0.345F; byte b = 123; /int可以自动转换为byte,sho
3、rt,char。只要不超过它们的表述范围。 double d = 23234; double d2 = 123L*234; /表达式类型的自动提升 long i = 234231L*234233*23423; / System.out.println(i);b) 字符型 2个字节 65536 unicode字符集c) 布尔型true, false char c1 = a; char c2 = 中; char 中2= 国; boolean b = true; if(b=true) System.out.println(true); if(b) /建议此种写法! System.out.printl
4、n(true); 引用类型控制语句顺序结构选择结构1. 单选择结构2. 双选择结构3. 多选择结构boolean b = true; if(b) System.out.println(true); if(b) System.out.println(true); else System.out.println(false); int age = 18; if(age100) System.out.println(老寿星); else if(age80) System.out.println(小寿星); else if(age60) System.out.println(老年人); else if
5、(age30) System.out.println(中年人); else if(age18) System.out.println(青年人); else System.out.println(小屁孩); int grade = 1; /1,2,3,4,5 switch(grade) /多值选择结构! case 1: case 2: System.out.println(学的凑合); break; case 3: System.out.println(学的一般); break; case 4: System.out.println(学的不及格); break; case 5: System.o
6、ut.println(太差了!); break; if(grade=1) /switch可以完全使用if else if代替! else if(grade=2) 循环结构whiledo whilefor /* int i = 0; /初始化 while(i10) /条件判断 System.out.println(i); /循环体 i+; /迭代 */ /* for(int i=0;i10;i+) /初始化、条件判断、迭代 /循环体 System.out.println(i); */ int a=0; do System.out.println(a); a+; while(a0); /先执行,后
7、判断! while:先判断,后执行! 面向对象面向过程和面向对象的区别面向对象帮助我们从宏观上把握项目的整体关系,微观上实现仍然是面向过程。类和对象抽象(抽出事务象的部分)和具体。类是对象的模板。成员变量(field,属性)要点:1. 成员变量的自动初始化。整数:0,浮点数:0.0, Boolean:false. 引用类型:null char:u0000public class Person int age=13; String name; int score; public static void main(String args) Person p = new Person(); p.ag
8、e = 23; p.name=张三; System.out.println(p.name); 方法public class Person int age=13; String name; int score; void test1() System.out.println(Person.test1(); int test2() System.out.println(Person.test2(); return 3; /return两个作用:返回值,结束方法的运行! int test3(int a,double d) System.out.println(Person.test2(); retu
9、rn (int)(a+d); public static void main(String args) Person p = new Person(); p.age = 23; p.name=张三; int a = p.test2(); System.out.println(p.name); Return既可以用于返回值,也可以用于终止方法的执行:void test2() if(man) System.out.println(man); System.out.println(man); System.out.println(man); void test3() if(!man) return;
10、 System.out.println(man); System.out.println(man); System.out.println(man); 方法的重载(overload) 方法名相同、形参列表不同(类型不同/个数不同/顺序不同)则构成重载。public class Calculator int add(int a,int b) System.out.println(sddsds); return a+b; int add(int a, int b, int c) return a+b+c; double add(double a, double b) return a+b; dou
11、ble add(double a, int b) return a+b; double add(int a, double b) return a+b; public static void main(String args) Calculator c = new Calculator(); System.out.println(c.add(3, 4); System.out.println(c.add(3, 4,5); System.out.println(c.add(3.0, 4.0); 构造方法(构造器 constructor)构造方法是特殊的方法!特殊在什么地方:1. 方法名必须和类名
12、保持一致!2. 无返回值(事实上,他是有返回值的。)3. 需要通过new来调用!4. 如果我们没有定义构造器,则编译器会帮助我们自动添加;如果我们手动定义构造器,则编译器不会帮助我们添加无参构造器。public class Person int age; String name; int score; void run() System.out.println(我在跑步!); Person(int age) this.age = age; System.out.println(正在构造一个person对象!); Person() public static void main(String a
13、rgs) Person p = new Person(); p.run(); 内存分析堆:存放new出的对象。栈:存放局部变量(方法内部定义的变量)方法区:存放类的信息、static变量、字符串常量等。public class Person int age=13; String name; int score; public static void main(String args) Person p = new Person(); p.age = 23; p.name=张三; Person p2 = new Person(); p2.name=李四; System.out.println(3
14、3=44); System.out.println(p=p2); String str = 张三; String str2 = 张三; String str3 = new String(李四); String str4 = new String(李四); System.out.println(str = str2); System.out.println(str3 = str4); System.out.println(哈哈); package包的两个基本作用:1. 解决类的重名问题2. 管理类包的具体用法:1. 使用package, 必须位于文件的第一句非注释性语句!2. 包名的规范:域名倒
15、着写+有意义的名字常见的包:java.lang 核心包(不需要我们import,直接可以使用!)java.io 输入输出流java.util 工具包 网络java.awt java.sql import用来引入其他包中的类,方便我们使用。import test.Person;import test.*;静态导入:import static , 导入某个类的静态属性和方法!this用来指定当前的对象!如果this位于构造方法内,则表示正要初始化的对象。如果this位于普通方法内,则表示调用该方法的对象(即当前对象)package com.bjsxt.j2se;public class TestT
16、his private int a; private int b; private int c; TestThis(int a,int b) this.a = a; this.b = b; TestThis(int a,int b, int c) this(a,b); /Constructor call must be the first statement in a constructor this.c = c; public static void main(String args) staticstatic变量位于方法区,被所有的该类的对象共享,可以称为类属性(静态属性)、类方法(静态方
17、法)。Static变量可以使用:类名.变量名来引用。static变量(方法)是从属于类的。可以通过:类.名字 来调用普通变量(方法)是从属于对象的。可以通过:对象名.名字 来调用。static方法中,不能调用普通方法或普通属性。final final 修饰普通变量: 常量!super 面向对象的三大特征封装/隐藏可以将类的内部实现细节进行封装(隐藏了内部实现的细节、复杂性),方便外部调用。这样的话,就利于软件的维护和扩展。关键字同一个类同一个包子类所有类privateXXXdefault(默认,不需要写出来)XXprotectedXpublic封装的使用方式:1 所有的属性都使用private
18、。 但是一般会提供get/set方法便于访问和设置属性。2 除非确认你的方法要被外部调用,否则一般都可以使用private。继承 子类扩展了父类。使用extends关键字。 JAVA类的继承中,只有单继承,没有多继承。为什么需要继承?1. 抽象概念,便于建模2. 代码复用Object类 Object是所有类的根类!掌握:toString()方法的使用! 用来打印对象的字符串表示形式!学习使用API文档学习怎么查询API文档学习使用DOC注释,生成项目的API文档(右键单击项目exportjava, javadocnext,finish,yes)方法的重写(override)多态 多态的三个必要
19、条件:继承、重写、父类引用指向子类对象。public class TestOverride public static void main(String args) TestOverride to = new TestOverride(); NokiaMobile nm = new NokiaMobile(); Mobile op = new OppoMobile(); /编译时类型 变量名 = new 运行时类型(); op.call(233223); OppoMobile om = (OppoMobile)op; /强制转型 om.callByOppo(23423);/ DazhaiMob
20、ile dm = new DazhaiMobile(); to.test(op); void test(Mobile nm) nm.call(888888); /* void test(OppoMobile nm) nm.call(888888); void test(DazhaiMobile nm) nm.call(888888); */class Mobile public void call(int num) System.out.println(使用手机打电话给:+num); class NokiaMobile extends Mobile public void call(int n
21、um)/ super.call(num); System.out.println(使用诺基亚手机打电话给:+num); class OppoMobile extends Mobile public void call(int num) System.out.println(使用Oppo手机打电话给:+num); public void callByOppo(int num) System.out.println(333333使用Oppo手机打电话给:+num); class DazhaiMobile extends Mobile public void call(int num) System
22、.out.println(使用Dazhai手机打电话给:+num); 抽象类 抽象类:包含抽象方法的类。抽象方法必须被子类重写。注意:1. 抽象类可以包含构造方法,但是不能被实例化。2. 抽象类包含了:具体实现和规范!接口为什么需要接口?项目需求是多变的!我们要从这些多变的需求中抽象出不变的内容,以不变应万变,提高我们的开发效率。接口是做什么的? 用来描述规范!体现了现实中这样的逻辑“如果你是则必须能.”。接口:只包含了抽象方法,常量!public interface Fly public static final int MAX_HEIGHT=100; int MIN_HEIGHT=1; /
23、常量总是:public static final void fly(); /方法总是:public abstract void stop(); void startup(); void upup(); void down();如何使用接口? class Airbus implements Fly Override public void down() Override public void fly() Override public void startup() Override public void stop() Override public void upup() 一个类可以实现多个接口接口可以多继承! interface IA void aaa();interface IB void bbb();interface IC extends IA,IB 面向接口编程!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1