Java4Android 课程笔记

Java4Android 课程笔记

第一集 1、名词介绍:  4:代表for;

2、java考古学:  主要介绍java发展史;  讨论java的未来发展;  问题:   学习一样东西,不去了解发明他的人,可行吗?

第二集 1、什么是编程  一种和计算机沟通的语言;  一种创造性的工作;  让上帝与你同在;

2、JDK的安装和配置  JDK就是java开发工具的集合;  windows需要设置PATH和CLASSPATH环境变量;   PATH:C:\Program Files\Java\jdk1.7.0_40\bin;   CLASSPATH:.;

3、创世纪(Hello World)  代码:   public class HelloWorld{    public static void main(String[] argv){     System.out.println("Hello World!");    }   }  编译并运行:   javac HelloWorld.java   java HelloWorld

第三集 1、什么是环境变量  指定操作系统运行时参数;  通常是键值对(一个名字等于一个值);  PATH环境变量作用:   提供命令的搜索路径。  CLASSPATH环境变量的作用:   提供要运行的类文件的搜索路径。

2、JDK里面有什么  开发工具、例子、头文件、jre、包文件、帮助文档、一部分java的源文件;

3、什么是JRE  java运行时环境;  含java虚拟机、java平台核心类文件、其他支持文件;

4、什么是JVM  java虚拟机的缩写;  软件虚拟出来的计算机;  java程序运行在JVM上;  只要系统安装了jvm,就可以运行java程序,而不用对java程序进行任何修改;  这也是java的跨平台实现方式;

第四集 重点:java的语法; 1、什么是变量

2、变量的声明  类型 变量;

3、变量分为哪些类型  基本数据类型(原始数据类型):   数值型   整数类型(byte,short,int,long)   浮点类型(float,double)   字符型(char)   布尔型(boolean)  引用数据类型:   类(class)   接口(interface)   数组

4、变量的命名规范  语法规范:   以字母、下划线或者美元符开头;   后面跟字母、下划线、美元符或者是数字;   java变量名没有长度限制;   java变量名对大小写敏感;  驼峰命名:   变量名应该使用有意义的英文单词;   如果变量名只有一个单词,则所有的字母小写;   变量名如果由多个英文单词组成,则从第二个单词开始首字母大写;  如:   public class Test   {    public static void main(String args[])    {    int age = 20;    int myAge = 20;    int $age = 20;    int _age = 20;    int Age = 20; // 不符合驼峰命名法    int 1age = 20; // 变量名错误   }  }

第五集 1、java数据类型分类  第四集 3

2、boolean类型变量的特征  使用逻辑运算,一般用于程序流程控制;  只有两种值:   true和false;   且不能用0和非0,或者空和非空来表示;

3、char类型变量的特征  Unicode字符集   为每种语言的每个字符设定了统一并且唯一的二进制码;   最多允许1114112个字符;

 乱码   字符存入时使用A字符集,读取时使用其他字符集就会出现乱码;

 由于java使用的Unicode字符集,所以一个char类型变量可以存一个汉字;  如:   char c = '中'; // 写代码时必须以ANSI格式编码;这点与视频讲述的不同;

 

补充:如果代码保存时采用的utf-8字符集,在win命令行下编译时需指定字符集,因为命令行默认字符集是ANCI:

  javac -encoding utf-8 xxx.java

即可将字符变量打印出来;

如果在win下默认保存的是ANCI字符集,则在命令行下直接编译即可正常打印出字符类型的汉字;

char c = 'u';
char zh = '呵';
System.out.println(zh + "" + c); //正常打印
//System.out.println(zh + c); //本行打印出来将会一串数字

4、数值型变量的特征  整型常量的三种表示方式:   十进制:如12,-33,0等;   八进制:以0开头,如012等;   十六进制:以0x或0X开头,如0X12,0x12等;

 整型常量默认为int型,如 int i = 3;  声明long型常量可以后后加'l'或者'L',如 long l = 3L;

第六集 练习 基本数据类型的赋值与运算 1、打印布尔类型值

2、打印char型变量

3、创建各种类型的变量,然后做运算;  字面量:  float类型赋值:   float f = 0.1f; // 若写0.1会出错,提示损失精度;   小数默认为double型,使用float则需加f或F;  如:   float a = 0.5 * 10;  编译出错;赋值号右边默认是double型;  正确的是:   float a = 0.5f * 10;   int b1 = 0;   long b2 = 0;   b1 = b2; // 编译出错,可能损失精度;  范围大的类型变量不能赋值给范围小的变量;  可以通过强制转换通过编译,但是可能会引起溢出导致结果不正确;  byte和short例外,可以用整型直接赋值,但是编译器会对具体值进行判断;   byte < short < int < long < float < double

第七集 1、运算符的分类  算术运算符:+,-,*,/,%,++,--;  关系运算符:>,<,>=,<=,==,!=;  布尔逻辑运算符:!,&,|,&&,||;  位运算符:&,|,^,~,>>,<<,>>>;  赋值运算符:=  扩展赋值运算符:+=,-=,*=,/=;  字符串连接运算符:+

2、各种运算符的使用方法  07Test

 & 逻辑与:int i = 5; boolean j = i > 6 & i++ > 7; 判断 i > 6 为false,i++ > 7 为flase,i值加1;  && 短路与:int i = 5; boolean j = i > 6 && i++ > 7; 判断 i > 6 为false,i++ > 7 就不再判断,i值还为5;  08Test

 | 逻辑或:  || 短路或:

3、什么是表达式

第八集 …… 第十六集

第十七集 1、静态成员变量的语法特点  可以直接使用类名调用;  所有对象使用的静态变量是同一份;

2、静态成员函数的语法特点  可以直接使用类名调用;  不能直接使用非静态成员变量;  因为静态成员函数可以直接由类名调用,这种情况下是没有对象的;  所以无法调用对象的成员变量,此时就只能调用静态成员变量;  静态成员函数中不能使用this;

3、静态代码块的语法特点  static{……}  没有名字,在装载类时自动执行;  主要作用就是为静态成员变量赋初始值;

第十八集 继承 1、什么是继承  java只支持单继承,不允许多继承;  关键字:extends  子类继承父类的成员变量和成员函数;

2、为什么要使用继承  方便性,共同代码需要修改时只需对父类的成员进行修改,所有子类的成员也随之被修改;  即:   减少重复代码;

3、继承的基本语法特点  clsaa 子类名 extends 父类名 { }

第十九集 子类的实例化过程 1、生成子类的过程  先调用父类的构造函数,再调用子类的构造函数;

2、使用super调用父类的构造函数方法;  在子类的构造函数中,一定会调用父类的构造函数;  开发人员不调用的话,编译器会自动在子类的构造函数中的第一行加一句:   super();  来调用父类的构造函数;  编译器自动加的该语句只是调用父类的无参构造函数;  这个语句必须是子类构造函数的第一个语句;  子类调用父类的构造函数,根据参数的个数,类型来决定调用父类的哪个构造函数;

第二十集 函数的复写 1、函数的复写  子类的函数与父类的函数无论函数名、返回值类型、参数列表等信息都一致的话,就是子类对父类函数的复写;

2、使用super调用父类的成员函数;  使用super.xxx();调用父类的成员函数;  复写过程中子类中复写的函数调用super.xxx();就是不覆盖父类的函数,而是在父类的方法基础上加语句;  复写过程中不调用super.xxx();则是覆盖父类的函数;  复写过程中子类的对象调用的是子类的函数;  父类的对象调用的是父类的成员函数;  在子类中复写父类的成员函数;

第二十一集 对象的转型 对多态的体现 1、对象的向上转型  将子类的对象赋值给父类的引用;  如:   子类:Student;父类:Person;   Student s = new Student();   Person p = s;  一个引用能够调用哪些成员变量,取决于这个引用的类型;  子类中新定义的成员变量,父类的引用是无法使用的;  引用调用的是哪一个方法,取决于引用指向的对象;  指向的对象若对父类该方法进行了复写,则调用子类中复写过的方法;若没有复写,则调用父类中的方法;  引用不能调用子类中的非复写方法;

2、对象的向下转型  子类:Student;父类:Person;  Student s1 = new Student();  Person p = s1;  Student s2 = (Studnt)p;  向下转型的过程是先向上转型,再向下转型;  直接生成一个父类对象,无法直接转成子类对象,编译不会出错,但是运行会出现类型转换的异常;

第二十二集 面向对象应用(一) 1、如何使用面向对象的特征,满足客户提出的需求变化;  面对重复代码使用继承来解决,方法差异使用复写解决;

第二十三集 抽象类和抽象函数 1、抽象函数的语法特征  只有函数的定义,而没有函数体的函数称为抽象函数;  abstract void fun(); // 只有定义(C语言的声明),没有函数体(C语言的定义);  类中若有抽象函数,则该类必须设置为抽象类;  类中没有抽象函数,也可以被声明为抽象类;  非抽象的子类不能使用抽象类生成对象,不可以调用抽象类的任何成员;  抽象类的子类可以调用父类的静态成员;  可以设置一个类为无抽象函数抽象类的子类,其他类利用该类间接调用抽象类的所有成员;  抽象类不能生成对象,因为抽象类的抽象函数没有函数体;  所以抽象类天生是当爹的,只能被继承;  继承抽象类的类也必须被声明为抽象类,或者复写父类(抽象类)的抽象函数;  抽象类可以拥有构造函数,不过是为子类提供的;  不可以直接通过 new 抽象类 来调用抽象类的构造函数,但是可以通过子类构造函数的super()来调用;  如Person是一个抽象类,Chinese是Person的子类,创建对象时这样调用:Person p = new Chinese();  在创建Chinese类的对象时就可以间接的调用Person类的构造函数和复写Person类的抽象函数;

2、抽象类的语法特征

3、抽象类的作用

转载于:https://www.cnblogs.com/ren-gh/p/3360129.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值