Android入门教程(五)

小咪咪 2021-09-14 16:30 481阅读 0赞

关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己。

欢迎大家关注我的微信公众号:「醉翁猫咪」

SouthEast

字面量:

1.整数字面量为整型(int)

2.小数字面量为双精度浮点型(double)

0.5*10结果为双精度浮点型

byte short int long float double

  1. public class TestSwitch{
  2. public static void main(String args []){
  3. char c = 'a';
  4. switch(c){
  5. case 'b':
  6. System.out.println('b');
  7. break;
  8. case 'c':
  9. System.out.println('c');
  10. break;
  11. case 'a':
  12. System.out.println('a');
  13. break;
  14. default:
  15. System.out.println('d');
  16. }
  17. }
  18. }

switch( char byte short int )只允许四种类型

  1. public class Test01{
  2. public static void main(String args []){
  3. int score = 90;
  4. if(score > 85 && score <= 100){
  5. System.out.println("成绩为优");
  6. }
  7. else if(score > 75 $$ score <= 85){
  8. System.out.println("成绩为良");
  9. }
  10. else if(score > 60 $$ score <= 75){
  11. System.out.println("成绩为中");
  12. }
  13. else if(score <= 60 && score >= 0){
  14. System.out.println("成绩为差");
  15. }
  16. else if(score > 100 || score < 0){
  17. System.out.println("成绩不在正常的范围之内");
  18. }
  19. }
  20. }

for(int i = 0; i < 10; i++){

System.out.println(i);

}

  1. public class TestWhile{
  2. public static void main(String args []){
  3. int i = 0;
  4. while(i < 10){
  5. System.out.println(i);
  6. i++;
  7. }
  8. }
  9. }

打印出100-200之间的所有素数

一个数字只有一和它自己被整除

定义一个类,名为TestPrimeNumber

在类当中定义主函数

用for循环打印出所有在100-200之间的数字

在for循环当中,每当循环执行一次,就判断循环变量是否为素数,如果是,就将循环变量的当前值打印出来;

判断n是否为素数,首先用2除n,如果除不尽,再用3除n,依次类推,如果从2到n-1都无法整除n,那么n就是素数。

  1. class TestPfrimeNumber{
  2. public static void main(String args []){
  3. for(int i = 100; i < 201; i++){
  4. boolean b = false;
  5. for(int j = 2 ; j < i - 1; j++){
  6. int k = i % j;
  7. if(k == 0){
  8. b = true;
  9. }
  10. }
  11. //如果不是true就打印出素数
  12. if(!b){
  13. System.out.println(i);
  14. }
  15. }
  16. }
  17. }

打印图形

  1. public class Test{
  2. public static void main(String args[]){
  3. int i = 5;
  4. int j = i++ + 5;
  5. System.out.println(j);
  6. System.out.println(i);
  7. }
  8. }

j=10;

i=6;

int j = ++i + 5;

System.out.println(j);

j=11;

i=6;

& 逻辑与

&& 短路与

  1. class TestTriangle{
  2. public static void main(String args []){
  3. for(int i=1; i<5; i++){
  4. for(int j=0; j<4-i; j++){
  5. System.out.print(" ");
  6. }
  7. for(int k=0; k<i; k++){
  8. System.out.print("* ");
  9. }
  10. System.out.println("");
  11. }
  12. }
  13. }
什么是面向对象?

面向对象是一种编程方法

面向对象是一种思维方式

面向对象不是一种编程语言

应该如何学习面向对象?

掌握一门面向对象语言的语法

掌握面向对象的思维方式

熟悉面向对象设计原则

掌握面向对象设计模式

什么是面向对象思维方法?

1.首先确定谁来做,其次确定怎么做

2.首先考虑整体,其次考虑局部

3.首先考虑抽象,其次考虑具体

不要认为掌握了一门面向对象语言就是掌握了面向对象

习惯了将面向对象与现实世界做比较

14

创建类的方法

创建对象的方法

对象和对象的引用

定义类的方法

class类名

{

属性;

方法;

}

属性也叫成员变量,主要用于描述类的状态

方法也叫成员方法,主要用于描述类的行为

age是类的属性,也叫类成员变量

shout是方法也叫类的成员函数

shout方法可以直接访问用一个类中的age变量,如果一个方法中有与成员变量同名的局部变量,该方法中对这个变量名的访问是局部变量,而不再是成员变量

生成对象的方法

格式:类名 对象名=new类名()

例如:Dog dog = new Dog();

创建一个Dog的引用

创建一个Dog的对象

类和对象的关系

类是抽象,而对象是具体的。

变量的类型 变量的值

Java的数据类型 基本数据类型和引用数据类型

对象就是引用数据类型

生成对象的方法

Java虚拟机把内存分为栈内存和堆内存

对象就叫引用数据类型

应该如何学习面向对象

面向对象的思维方式

  1. class Test{
  2. public static void main(String args []){
  3. Dog d = new Dog();
  4. d.name="旺财";
  5. d.age=2;
  6. d.color="黑色";
  7. d.jump();
  8. System.out.println("名字是"+d.name);
  9. }}
对象的使用方法,多对象的创建方法,匿名对象的创建和使用方法。

对象的使用方法

使用对象调用变量和函数

对象.变量

对象.函数()

生成多个对象

匿名对象的使用

可以不定义对象的引用名称,而直接调用这个对象的方法,这样的对象叫做匿名对象。

如:new Dog().jump();

函数的重载和构造函数的作用
重载的表达
  1. class A{
  2. void funA(){
  3. System.out.println("没有参数的funA函数");
  4. }
  5. void funA(int i){
  6. System.out.println("拥有一个整型参数的funA函数");
  7. }
  8. void funA(int i,double d){
  9. System.out.println("拥有两个参数的funA函数");
  10. }
  11. class Test{
  12. public static void main(String args[]){
  13. A a = new A();
  14. a.funA();
  15. a.funA(1,3.2);
  16. }
  17. }
什么叫函数的重载呢?

1.两个或者多个函数在同一个类当中;

2.函数名相同;

3.参数列表不同

什么是构造函数?

A(){

}

使用this调用成员变量和成员函数

使用this调用构造函数

1.静态成员变量只有一份

2.在静态函数当中不能使用this;

3.静态代码块的主要作用是为静态成员变量赋值。

  1. class Person{
  2. static{
  3. System.out.println("dd");
  4. }
  5. static String name;
  6. ..
  7. }
继承,封装,多态

什么是继承?

为什么要使用继承,

继承特点

什么是继承?

在现实世界当中,继承就是儿子得到了老子的东西;

在面向对象的世界当中,继承就是一个类得到了另一个类当中的成员变量和成员方法;

Java当中只支持单继承

Java只支持单继承,不允许多继承。

总结:

使用继承是为了减少重复代码

继承的基本语法

子类实例过程

生成子类的过程

使用super调用父类构造函数的方法

  1. class Person{
  2. String name;
  3. int age;
  4. Person(){
  5. System.out.println("Person的无参数构造函数");
  6. }
  7. Person(String name,int age){
  8. this.name = name;
  9. this.age = age;
  10. System.out.println("Person有参数构造函数");
  11. }
  12. void eat(){
  13. System.out.println("吃饭");
  14. }
  15. }
  16. class Student extends Person{
  17. //在子类的构造函数当中,必须调用父类的构造函数
  18. Student(){
  19. super();
  20. System.out.println("Student的无参数构造函数");
  21. }
  22. Student(String name,int age,int a){
  23. super(name,age);
  24. this.a = a;
  25. }
继承只能继承成员变量成员函数
  1. class Test{
  2. public static void main(String args[]){
  3. Student student = new student();
  4. }
  5. }
虽然子类不能继承父类的构造函数,但我能用super()来调用父类的构造函数。 调用子类的构造函数,一定会调用父类的构造的函数。

听懂了实例过程

函数的复写(override)

使用super调用父类的成员函数

//复写(override)也被称之为覆盖或者重写

//在具有父子关系的两个类当中

//父类和子类各有一个函数,这两个函数的定义(返回值类型,函数名和参数列表)完全相同

  1. class Student extends Person{
  2. String address;
  3. void introduce(){
  4. super.introduce();
  5. System.out.println("我的家在"+address);
  6. }
  7. }
对象的转型(多态性的体现)
对象的向上转型和向下转型

什么是向上转型?

向上转型就是将子类的对象赋值给父类的引用。

Student s = new Student();

Person p = s;

//一个引用能够调用哪些成员(变量和函数),取决于这个引用类型

//一个引用调用的是哪一个方法,取决于这个引用所指向的对象。

  1. class Test{
  2. public static void main(String args[]){
  3. String s = new Student();
  4. Person p = s;
  5. p.name = "hhh";
  6. p.age = 20;
  7. //p.address = "beijing";
  8. p.introduce();
  9. //p.study();
  10. }
  11. }
什么是向下转型?

向下转型就是将父类的对象赋值给子类的引用

Student s1 = new Student();

Person p = s1;

Student s2 = (Student)p;

23

抽象函数的语法特征

抽象类的语法特征 抽象类的作用

类是抽象的,对象是具体的

比类更抽象的,就是抽象类

先抽象,后具体

什么是抽象函数?

只有函数的定义,没有函数体的函数被称为抽象函数

  1. abstract void fun();
  2. class Person{
  3. String name;
  4. int age;
  5. void introduce(){
  6. System.out.println("我的名字是"+name+",我的年龄是"+age);
  7. }
  8. abstract void eat();
  9. }
什么是抽象类?

使用abstract定义的类被称之为抽象类

抽象类不能够生成对象;

如果一个类当中包含有抽象函数,那么这个类必须被声明为抽象类

如果一个类当中没有抽象函数,那么这个类也可以被声明为抽象类

抽象类 不能实例化

继承抽象类,那么该类必须为抽象类

复写,可以使用复写,就可以使用抽象类

class Chinese extends Person{

void eat(){

System.out.println(“hhh”);

}

}

class Test{

public static void mian(String args[]){

Person p = new Chinese();

p.eat();

}

}

抽象类为基类,其他的类来继承它,就是当爹的

抽象类可以有构造函数吗?

条件:

抽象类不能生成对象

构造函数用于生成类的对象

super的作用

  1. abstract class Person{
  2. Person(){
  3. System.out.println("Person的构造函数");
  4. }
  5. Person(String name,String age){
  6. this.name = name;
  7. this.age = age;
  8. }
  9. String name;
  10. int age;
  11. void introduce(){
  12. System.out.println("我的名字是"+name+",我的年龄是"+age);
  13. }
  14. abstract void eat();
  15. }
  16. class Chinese extends Person{
  17. String address;
  18. Chinese(){
  19. super();
  20. System.out.println("Chinese的构造函数");
  21. }
  22. Chinese(String name,int age,String address){
  23. super(name,age);
  24. this.address = address;
  25. }
  26. void eat(){
  27. System.out.println("用筷子吃饭");
  28. }
  29. }
  30. class Test{
  31. public static void main(String args[]){
  32. Person p = new Chinese();
  33. P.eat();
  34. }
  35. }

不能调用抽象类的构造函数,但可以用子类来调用抽象函数,生成子类对象的时候使用调用构造函数。

结论:

抽象函数就是没有函数体的函数

抽象类使用abstract来定义

抽象类不能生成对象,但是却可以拥有构造函数,这个构造函数是为了子类准备的。

24为什么用抽象类。

如果一段代码在语意上是有错误的,那么在语法上也应该是有错误的

  1. abstract class Printer{
  2. void open(){
  3. System.out.println("open");
  4. }
  5. void close(){
  6. System.out.println("close");
  7. }
  8. abstract void print();
  9. }
25什么是Java当中的软件包?

为什么要用软件包?

如何给一个类打包?

//将类放置到一个包当中,需要使用package“包名”

//编译时需要使用-d参数,该参数的作用是依照包名生成相应的文件夹

//一个类的全名应该是“包名”+”.”+”类名”

//hhh.Test,执行的话,要使用java hhh.Test

//包名的命名规范

//要求包名所有的字母都要小写

//包名一般情况下,是你的域名倒过来写

  1. package hhh;
  2. class Test{
  3. public static void main(String args[]){
  4. System.out.println("hellos");
  5. }
  6. }

软件包为Java类提供了命名空间

打包需要使用package指令

一个类的全名应该是“包名”+“类名”

包和访问权限的语法

Java当中的访问权限

public : 公共权限

private : 私有权限

default:包级别访问权限

protected:受保护权限

27包和访问权限

访问权限与继承的关系

protected权限

//如果子类和父类不在同一包当中,则子类无法继承到父类当中的default权限的成员变量和成员函数(有问题)

//如果子类和父类不在同一包当中,子类可以继承到父类当中的default权限的成员变量和成员函数,但是由于权限不够,无法使用

protected 权限首先拥有和default一样的功能,但是该权限只能修饰成员变量和成员函数

//public > protected > default > private

  1. package com.hh;
  2. public class Person{
  3. String name;
  4. int age;
  5. void eat(){
  6. System.out.println("eat");
  7. }
  8. void sleep(){
  9. System.out.println("sleep");
  10. }
  11. }
  12. package cn.mm;
  13. import com.hh;
  14. class Student extends Person{
  15. void introduce(){
  16. System.out.println("我的名字是"+name+",haha"+age);
  17. }
  18. }

从入门到熟悉!

坚决不放弃!

2_02.png_wx_lazy_1

喜欢本文的朋友们

欢迎长按下图关注订阅号醉翁猫咪

收看更多精彩内容

SouthEast 1

发表评论

表情:
评论列表 (有 0 条评论,481人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Android入门教程I(视频)

    本视频教程涵盖了所有的Android应用程序开发的基础上,根据技能点的功能分为五章,包括环境的文章,控制、布局、组件和一般文件,本教程的目的是“看得懂、学得会、做得出”,为后续

    相关 Android入门教程(八)

    关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己。  本篇文章同步微信公众号  欢迎大家关注我的微信公众号:「醉翁猫咪」  ![20180225

    相关 Android入门教程

    关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己。 欢迎大家关注我的微信公众号:「醉翁猫咪」 ![SouthEast][] 字面量: