前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Android入门教程(五)

Android入门教程(五)

作者头像
达达前端
发布于 2022-04-28 11:56:23
发布于 2022-04-28 11:56:23
38900
代码可运行
举报
文章被收录于专栏:达达前端达达前端
运行总次数:0
代码可运行

字面量:

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

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

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

byte short int long float double  

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class TestSwitch{
public static void main(String args []){
char c = 'a';
switch(c){
case 'b':
System.out.println('b');
break;
case 'c':
System.out.println('c');
break;
case 'a':
System.out.println('a');
break;
default:
System.out.println('d');
}
    }
}

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Test01{
 public static void main(String args []){
 int score = 90;
 if(score > 85 && score <= 100){
 System.out.println("成绩为优");
 }
 else if(score > 75 $$ score <= 85){
 System.out.println("成绩为良");
 }
 else if(score > 60 $$ score <= 75){
 System.out.println("成绩为中");
 }
 else if(score <= 60 && score >= 0){
 System.out.println("成绩为差");
 }
 else if(score > 100 || score < 0){
 System.out.println("成绩不在正常的范围之内");
 }
 }
}

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

 System.out.println(i);

}

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class TestWhile{
 public static void main(String args []){
  int i = 0;
  while(i < 10){
   System.out.println(i);
   i++;
   } 
  }
}

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

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

定义一个类,名为TestPrimeNumber

在类当中定义主函数

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class TestPfrimeNumber{
 public static void main(String args []){
  for(int i = 100; i < 201; i++){
   boolean b = false;

   for(int j = 2 ; j < i - 1; j++){

    int k = i % j;
     if(k == 0){
      b = true;
     }
    }
//如果不是true就打印出素数
    if(!b){
     System.out.println(i);
    }
   }
  }
}

打印图形

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Test{
public static void main(String args[]){
int i = 5;
int j = i++ + 5;
System.out.println(j);
System.out.println(i);
}
}

j=10;

i=6;

int j = ++i + 5;

System.out.println(j);

j=11;

i=6;

& 逻辑与

&& 短路与

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class TestTriangle{

public static void main(String args []){
 for(int i=1; i<5; i++){
  for(int j=0; j<4-i; j++){
   System.out.print(" ");
  } 
  for(int k=0; k<i; k++){
   System.out.print("* ");
  }
  System.out.println("");
  }
 }
}
什么是面向对象?

面向对象是一种编程方法

面向对象是一种思维方式

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

应该如何学习面向对象?

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

掌握面向对象的思维方式

熟悉面向对象设计原则

掌握面向对象设计模式 

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

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

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

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

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

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

14

创建类的方法

创建对象的方法

对象和对象的引用

定义类的方法

class类名

{

属性;

方法;

}

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

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

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

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

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

生成对象的方法

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

例如:Dog dog = new Dog();

创建一个Dog的引用

创建一个Dog的对象

类和对象的关系

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

变量的类型 变量的值

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

对象就是引用数据类型

生成对象的方法

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

对象就叫引用数据类型

应该如何学习面向对象

面向对象的思维方式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Test{
public static void main(String args []){
Dog d = new Dog();
d.name="旺财";
d.age=2;
d.color="黑色";
d.jump();
System.out.println("名字是"+d.name);
}}
对象的使用方法,多对象的创建方法,匿名对象的创建和使用方法。

对象的使用方法

使用对象调用变量和函数

对象.变量

对象.函数()

生成多个对象

匿名对象的使用

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

如:new Dog().jump();

函数的重载和构造函数的作用
重载的表达
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class A{
 void funA(){
  System.out.println("没有参数的funA函数");
 }
 void funA(int i){
  System.out.println("拥有一个整型参数的funA函数");
 }
 void funA(int i,double d){
  System.out.println("拥有两个参数的funA函数");
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Test{
 public static void main(String args[]){
  A a = new A();
  a.funA();
  a.funA(1,3.2);
  }
}
什么叫函数的重载呢?

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

2.函数名相同;

3.参数列表不同

什么是构造函数?

A(){

}

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

使用this调用构造函数

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Person{
 static{
  System.out.println("dd");
 }
 static String name;
 ..
}
继承,封装,多态

什么是继承?

为什么要使用继承,

继承特点

什么是继承?

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

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

Java当中只支持单继承

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

总结:

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

继承的基本语法

子类实例过程

生成子类的过程

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Person{
 String name;
 int age;
 Person(){
  System.out.println("Person的无参数构造函数");
 }
 Person(String name,int age){
  this.name = name;
  this.age = age;
  System.out.println("Person有参数构造函数");
 }
 void eat(){
  System.out.println("吃饭");
 }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Student extends Person{
//在子类的构造函数当中,必须调用父类的构造函数
 Student(){
  super();
  System.out.println("Student的无参数构造函数");
 }
 Student(String name,int age,int a){
  super(name,age);
  this.a = a;
}
继承只能继承成员变量成员函数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Test{
 public static void main(String args[]){
  Student student = new student();
 }
}
虽然子类不能继承父类的构造函数,但我能用super()来调用父类的构造函数。 调用子类的构造函数,一定会调用父类的构造的函数。

听懂了实例过程

函数的复写(override)

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Student extends Person{
 String address;
 void introduce(){
  super.introduce();
  System.out.println("我的家在"+address);
 }
}
对象的转型(多态性的体现)
对象的向上转型和向下转型

什么是向上转型?

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

Student s = new Student();

Person p = s;

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Test{
 public static void main(String args[]){
  String s = new Student();
  Person p = s;
 
  p.name = "hhh";
  p.age = 20;
  //p.address = "beijing";
  p.introduce();
  //p.study();
  }
}
什么是向下转型?

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

Student s1 = new Student();

Person p = s1;

Student s2 = (Student)p;

23

抽象函数的语法特征

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

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

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

先抽象,后具体

什么是抽象函数?

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
abstract void fun();
class Person{
 String name;
 int age;
 
 void introduce(){
  System.out.println("我的名字是"+name+",我的年龄是"+age);
  }
  abstract void eat();
}
什么是抽象类?

使用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的作用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
abstract class Person{
 Person(){
  System.out.println("Person的构造函数");
 }


 Person(String name,String age){
  this.name = name;
  this.age = age;
} 


 String name;
 int age;
 void introduce(){
  System.out.println("我的名字是"+name+",我的年龄是"+age);
 }
 abstract void eat();
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Chinese extends Person{

 String address;
 Chinese(){
  super();
  System.out.println("Chinese的构造函数");
 }

 Chinese(String name,int age,String address){
  super(name,age);
  this.address = address;
}
 void eat(){
  System.out.println("用筷子吃饭");
 }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Test{
 public static void main(String args[]){
  Person p = new Chinese();
  P.eat();
  }
}

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

结论:

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

抽象类使用abstract来定义

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

24为什么用抽象类。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
abstract class Printer{
 void open(){
  System.out.println("open");
 }
 void close(){
  System.out.println("close");
 }
 abstract void print();
}
25什么是Java当中的软件包?

为什么要用软件包?

如何给一个类打包?

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

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

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

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

//包名的命名规范

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package hhh;
class Test{
 public static void main(String args[]){
  System.out.println("hellos");
 }
}

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

打包需要使用package指令

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

包和访问权限的语法

Java当中的访问权限

public : 公共权限

private : 私有权限

default:包级别访问权限

protected:受保护权限

27包和访问权限

访问权限与继承的关系

protected权限

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

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

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

//public > protected > default > private 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.hh;
public class Person{
 String name;
 int age;
 void eat(){
  System.out.println("eat");
 }
 void sleep(){
  System.out.println("sleep");
 }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package cn.mm;
import com.hh;
class Student extends Person{
 void introduce(){
  System.out.println("我的名字是"+name+",haha"+age);
 }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-02-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
第五节:详细讲解Java中的接口与继承
大家好,我是 Vic,今天给大家带来详细讲解Java中的接口与继承的概述,希望你们喜欢
达达前端
2019/07/03
3970
Java基础教程(全代码解析)
掌握一门面向对象语言的语法 掌握面向对象的思维方式 熟悉面向对象设计原则 掌握面向对象设计模式
达达前端
2022/04/29
8260
Java基础教程(全代码解析)
Java面试集合(五)
在Java中的三大特性中存在一种为继承,继承究竟是用来解决什么问题的呢?在我们写代码的时候,我们会在一些类中使用相同的属性和方法,如两个不同的人(类),共同都有年龄,身高,体重等。
达达前端
2019/07/03
3850
Java面试集合(五)
JAVA入门学习三
一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。
全栈工程师修炼指南
2020/10/23
7580
JAVA入门学习三
第十天 面向对象-继承抽象类【悟空教程】
第10天 面向对象 第1章 继承 1.1 继承概念 1.1.1 继承概述 继承是面向对象的核心特性,是面向对象的学习重点。同时继承是代码复用的重要方式,可以表示类与类之间的关系,是所有面向对象语言不可缺少的组成部分。 1.1.2 继承概念 当一个类的属性与行为均与现有类相似,属于现有类的一种时,这一个类可以定义为现有类的子类。 或者换成相反的角度来看,如果多个类具有相同的属性和行为,我们可以抽取出共性的内容定义父类,这时再创建相似的类时只要继承父类即可。 子类拥有父类的所有属性与方法,无需重新定义。并且可
Java帮帮
2018/06/11
7040
《Kotin 极简教程》第7章 面向对象编程(OOP)(1)第7章 面向对象编程(OOP)《Kotlin极简教程》正式上架:
在前面的章节中,我们学习了Kotlin的语言基础知识、类型系统、集合类以及泛型相关的知识。在本章节以及下一章中,我们将一起来学习Kotlin对面向对象编程以及函数式编程的支持。
一个会写诗的程序员
2018/08/17
1.1K0
JAVA基础 | java基础4(JAVA继承、JAVA多态、抽象类、接口)
super 表示使用它的类的父类。super 可用于: 1.引用父类对象的成员变量 super.age;
网络技术联盟站
2019/10/13
1.2K1
第十二天 面向对象-构造方法继承this super【悟空教程】
第12天 面向对象 第1章 构造方法 1.1 构造方法概念与功能 构造方法是正常开发中不可或缺的一部分,是语法上必须存在的。是一个具有特殊格式的方法,且有特殊的调用方式。 用来创建实例对象的方法。 给对象的数据进行初始化 Person p = new Person(); 调用构造方法 Person() 只是我们没有写这个方法,而是Java自动补齐了这个方法,是方法就可以传入参数。 创建对象时,可以直接为成员变量赋值,无需再在对象产生后再赋值。 核心功能创建对象 只要方法被调用,就已经创建了对象
Java帮帮
2018/06/11
5780
如何讲清楚 Java 面向对象的问题与知识?(类与对象,封装,继承,多态,接口,内部类...)
这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解。所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项目,专注 Java 后端面试题 + 解析 + 重点知识详解 + 精选文章的开源项目,希望它能伴随你我一直进步!
BWH_Steven
2021/02/24
1.2K0
如何讲清楚 Java 面向对象的问题与知识?(类与对象,封装,继承,多态,接口,内部类...)
Java学习笔记
1、对于构造函数,如果声明为public void structor(),则如果声明该对象时不会调用该构造函数,如果声明为public structor(),则对象会自动调用该构造函数
用户9184480
2024/12/17
650
第32节:Java中-构造函数,静态方法,继承,封装,多态,包
在现实世界当中,继承就是儿子得到老子的东西,在面向对象的世界当中,继承就是一个类得到了另一个类当中的成员变量和成员方法
达达前端
2019/07/03
5130
第32节:Java中-构造函数,静态方法,继承,封装,多态,包
Java程序设计(面向对象)- 三大支柱「建议收藏」
面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 介绍:
全栈程序员站长
2022/08/04
2860
Java程序设计(面向对象)- 三大支柱「建议收藏」
Java入门教程-面向对象
“类”是对事物,也就是对象的一种描述,可以将类理解为一张设计图,根据设计图,可以创建出具体存在的事物
哈德森
2023/04/07
2480
Java入门教程-面向对象
【博客同步】系统学习javaweb-02-java面相对象
成员属性有默认的初始值,其中String等引用类型为null,而局部变量没有初始值。
CS逍遥剑仙
2025/03/01
570
Java核心基础知识:面向对象的三大特性讲义
上述的每一个步骤, 我们都是参与者, 并且需要面对具体的每一个步骤和过程, 这就是面向过程最直接的体现.
用户1880875
2021/08/26
4610
Java——Java面向对象
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架。
说故事的五公子
2020/04/13
2.2K0
JAVA入门零基础小白教程day07_继承&抽象
多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,这个类就是父类,那么多个子类无需再定义这些属性和行为,只要继承那一个类即可。如图所示:
用户9184480
2024/12/13
390
JAVA入门零基础小白教程day07_继承&抽象
继承、抽象类、代码块
项目经理:姓名,工号,工资) ——————————————》员工:姓名,工号,工资 程序员: 姓名,工号,工资)
小炜同学
2022/09/23
5100
第十一天 面向对象-接口多态【悟空教程】
第11天 面向对象 第1章 接口 1.1 接口概念 1.1.1 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”。 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成。这样将功能的定义与实现分离,优化了程序设计。 请记住:一切事物均有功能即一切事物均有接口。 继承是方便类的定义,可以定义一个共性的父类 然后设置子类在继承,提高代码复用性 接口是方便了方法的使用 比如企鹅是鸟 但他不会飞 如果我们设置鸟类都会飞的方法就不合适,所以
Java帮帮
2018/06/11
5260
【JavaSE】Java入门五(面向对象 2——继承)
继承机制:是面相对象程序设计实现代码复用最重要的手段,它允许程序员在保持原有结构特性的基础上进行扩展,增加新功能,从而产生新的类(派生类)。
小皮侠
2024/04/08
1170
【JavaSE】Java入门五(面向对象 2——继承)
推荐阅读
相关推荐
第五节:详细讲解Java中的接口与继承
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文