资讯详情

Java培训学习 --面向对象

概念知识

2.特殊值

0 0.0 -0.0 -无穷大 无穷大 NaN

int i=0;

double a1=-0.0; //不管是 0、0.0 -0.0 双等号的比较值

double a2= 0.0;

a1=1/0.0; //结果为Infinity

a1=1/-0.0; //结果为-Infinity

a1=0/0.0 //结果为NaN

3.取整

Math.ceil 向上取整 得到的是double类型

Math.floor 向下取整 结果是double类型

Math.round 四舍五入取整 如果传入double 返回long类型

如果传入float 返回值为int

加0.5向下取整

4.可变参数

约束1: 数量可变 类型不能变

约束2:一种方法最多只有一个可变参数,可变参数必须放在参数列表的最后

static void method( int ...a){          //定义一种方法 }  static void method( int ...a,int i){     //语法错误 }

使用可变参数:

static void method (double...i){   System.out.println(i.length);     System.out.println(i[0]); }

2.面向对象

1.类:用于描述具有相同特征(属性)和相同行为(方法)的对象

Java中用 class描述类关键词;

2.定义类:定义类中的成员、成员变量和方法。

成员变量:和以前的变量一样,成员变量位于任何方法之外。

成员方法:把static删除关键字,不添加是每个对象的行为。

对象:

对象Object是构成系统的基本单位;

创建对象:

类名 对象名= new 类名();

使用对象:

对象名.成员变量

调用成员方法:

对象名、方法名(参数列表);

2.变量作用域

全局变量(成员变量):

  • 定义在方法的外部,类的内部,使用范围是整个类
  • 不需要初始化
  • 存储在堆内存中(物体存在时)

局部变量(方法中的变量):

  • 定义在方法内部或句块内部,适用范围限于方法内部或句块内部
  • 必须初始化
  • 存储在堆内存中

3.this变量

就近原则存在

在方法中调用类中属性name,就要用到this标记使用的属性变量

class Person{ String String sex; int age;

void eat(){

String ="aaa"; 方法中也声明了一个name

System.out.println( "正在吃饭"); //this标记使用的属性变量

} }

成员方法:

  • 语法

访问修饰符 返回值类型 方法名称(参数列表){

方法体

}

  • 访问权限修饰符:public protected dafault private
  • 返回值类型由返回值决定
  • 成员变量可以直接用于成员方法,但是main如果在方法中调用成员变量和方法,则必须通过对象.属性名\调用方法名(参数列表)的形式
  • 调用成员方法,直接写方法名(参数列表)

1.public 公共的

public装修时注意:

1.类文件中只有一个public类类必须与文件名一致.

2.main必须写下方法public类中.

2.private 私有的

只能在自己的类中访问

3 default 本包下的

在类当中 是不可以写 default 默认不能写

default 本包下的访问范围为 出包就不能访问

为何引入包:

默认使用本包下的所有类别。

若一类要使用两种重名类型,则需使用类全名进行标注;

例:com.easy1.Easy1 ee=new com.easy.Easy1();

默认介绍所有类别Java.lang包

Java.lang包声明了最常用、最基本的东西,不需要我们介绍

本包下除了private 都可以访问

不同包下 default 访问不到

private int siz=0;//封装起来     private int [] value=new int[16];//封装起来     //提供一种方法来读取数据     public int size(){         return this.size;     }

并不是所有的封装都需要 getter/setter

程序中的继承性是指子类拥有父类的全部特征和行为,这是类之间的一种关系

  • 继承的特点:

继承要有一定的层次结构,还有具有一定的可传递性

子类继承了父类的所有方法和属性,但不包括私有属性和构造方法

子类也可以有自己的属性和方法

Java只支持单继承,也就是说一个子类只能有一个父亲,父类可以有多个子类

  • 继承可见减少代码重复,提高了复用性和维护性
  • 继承让类于类之间产生了关系,类的耦合型增加了,父类发生变化子类也会跟着变化。

//子类继承父类()

public static void main(String[] args){

B b=new B();

System.out.println(b.surname);

b.test();//子类继承父类,子类就具有了父类中定义好可继承的属性和方法

}

class A{

String surname;

void test(){}

}

class B extends A{

}

格式:

访问修饰符 方法名称(参数列表){

方法体

}//

创建有继承关系的子类对象时,会执行父类中默认的构造方法,然后执行子类中相关的构造方法。

作用:初始化对象

每个类,系统会自动提供一个无参构造方法

public class Dkk {
String name;


public Demo(String name){

this.name=name;

 }//构造方法

public static void main(String[] args){
Demo demo=new Demo();//这时就会报错,一旦定义了构造方法,
                      //系统默认的构造方法就会不存在

}

}

super关键字:

  • 表示当前类的父类的调用
  • 只能出现在有继承关系的子类中
  • super两种用法:

          1. super.属性名、super.方法名(参数列表)

              表示父类的属性和方法,和子类中属性或方法重名时使用

           2.super(参数列表)

             子类继承父类 子类在执行构造方法的时候第一行默认是调用

              父类的构造方法(系统自带)父类没有无参构造方法,子类必须定义构造方法        

              即必须调用父类的无参构造方法

Son(){

super("");

}

方法的重载:方法名一样,参数列表不一样

  • 方法名一样即为重载(不管返回值是否一致)
  • public String test( int a,double b){ return"";}
  • public void test( int a){ return"";}

只能通过参数列表来区分:参数类型、参数数量、参数顺序

方法的重写

定义:子类对父类中继承过来的方法进行重新定义

  • 当父类中的方法无法满足子类的需求,子类可以对该方法进行重写
  • 必须和父类的方法名,返回值,参数列表完全相同,并且访问修饰符的范围不能变小

@Override对是否重写进行注解

多态:

  • 把父类对象指向子类对象的引用,就是把子类对象当作父类对象来使用
  • 他可以调用父类中所有的成员属性和方法,(但不能在调用子类自己的属性和方法)
  • 如果子类中有重写了父类的方法,那么执行这个方法时一定执行子类的重写方法

向上转型

  • 多态本身就是子类类型像父类类型向上转型的过程
  • 将子类对象转换为 父类对象就是向上转型(自动转换)

父类类型 对象名=new 子类类型();

  • 可以使用更高级的指针指向子类的对象;
  • 向上转型的对象可以调用父类中所有的普通方法和成员变量,但是只能调用子类中重写的方法

public void test(){

Son s=new Son();

//向上转型

Parent p=new Son();

p=new Son2();//Parent的另一个子类

}

public void demo(Parent p){

p.test();//向上转型调用父类中的方法

}

public static void main(String[] args){

Parent p=new Parent();

demo(p);

}

(大飞机小飞机都是飞机)

标签: dkk浓度传感器me61t

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司