Java基础知识点(五)

2021-09-13  本文已影响0人  羋学僧

一、类、对象

世间万物皆对象

类是对象的模板

类的特征是静态表现
类的行为是动态动作

类和对象的关系

类是抽象的概念,是对象的模板
对象是具体的事物,是类的具体实例

面向对象编程

面向对象编程是利用编程方式提现出现实中类与对象。
从已有现实的类中定义程序中的类(Class)。
从类(Class)创建(实例化)具体的对象(Object)。

Java创建类的语法

public class 类名{
        //类的内容
          }

Java创建类的命名规则

public class Dog{
        //类的内容
          }

类名要直白意义,最好英文
首字母大写:Dog、BigDecimal
不要数字开头,不要包含特殊字符
创建类的实例对象

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

new 关键字是创建实例对象最重要的标志

对象的命名规则

Dog lucky = new Dog();
Person first = new Person();

类名要直白意义,最好英文
首字母小写:sam、firstItem
不要数字开头,不要包含特殊字符

成员变量

定义

成员变量就是隶属于对象的变量
成员变量用于保存对象的静态特征
同类型的不同对象拥有相同的成员变量,但值彼此独立

public class Dog{
        String name;
        int age;
        float weight;
          }

成员变量的使用
赋值

Dog lucky = new Dog();
lucky.name = "Lucky";
lucky.age = 3;
lucky.weight = 10.2f;

读取

System.out.println(lucky.name + "体重" + lucky.weight + "千克");

方法(Method)

什么是方法

方法是用于完成特定功能的整段代码

[修饰符] 返回值类型 方法名 (形式参数(形参)列表){
            Java语句块
}
public String isOddNumber(int num){
        if(num%2==0){
               return "偶数";
         }else{
               return "奇数";
         }
}

方法的调用

类名 对象名 = new 类名();//首先创建对象
类型 变量名 = 对象名.方法名(实际参数列表);//调用方法
//后续处理...
int a = 10;
MethodSample01 methodSample01 = new MethodSample01();
String r1 = methodSample01.isOddNumber(a);
System.out.println(a + "是" + r1);

无返回值的方法定义与调用

public void output1(){
          System.out.println("一");
}
public void output2(){
          System.out.println("二");
}
methodSample01.output1();
methodSample01.output2();

包(Package)

把功能相似或者相关的类组织在同一个包中
包也采用了树形目录的存储方式
通过包也可限定类的访问权限

包的命名规范

包采用“逆域名法”进行命名,用“.”分割,单词全部小写
标准格式:域名后缀.组织机构名.项目名[.模块名].包的职能

访问修饰符

访问修饰符用于控制类、成员变量、方法的访问范围

面向对象三大特征

封装
继承
多态

封装

封装即隐藏功能的实现细节
利用对象与方法是实现封装的直接途径
良好的封装让代码更容易阅读与维护

对成员变量进行读写封装

getter方法,getter方法用于读取成员变量的内容
getter书写格式: public 成员变量类型 get 成员变量名() ,PS:肖字母大写

setter方法,setter方法用于设置成员变量的内容
setter书写格式: public void set 成员变量名(新的数据参数)

定义

public class MobileNumber {

    private String owner; //所有者

    private String areaCode = "86"; //国家区号
    
    private long mobileNumber; //手机号
    
    //getter方法,getter方法用于读取成员变量的内容
    //getter书写格式: public 成员变量类型 get成员变量名() ,PS:肖字母大写
    public String getOwner() {
        //this关键字代表当前对象的...
        return this.owner;
    }

    //setter方法,setter方法用于设置成员变量的内容
    //setter书写格式: public void set 成员变量名(新的数据参数)
    public void setOwner(String owner) {
        this.owner = owner;
    }
}

调用

public class MobileNumberTestor {
        public static void main(String[] args){
                MobileNumber mobileNumber = new MobileNumber();
                mobileNumber.setOwner("老齐");
                String owner = mobileNumber.getOwner();
                System.out.println(owner);
        }
}

继承

父类

//Mark1
package com.imooc.object.Sample4;

public class Mark1 {
    protected String title;
    protected String color;
    protected String movie;
    public void description(){
        System.out.println("型号"+title);
        System.out.println("颜色"+color);
        System.out.println("电影"+movie);
    }
    private void fire(){
        System.out.println("利用手臂燃料泵射出火焰");
    }

    public static void main(String[] args) {
        Mark1 mark1=new Mark1();
        mark1.color="银灰色";
        mark1.movie="钢铁侠1";
        mark1.title="马克1型";
        mark1.description();
        mark1.fire();
    }
}

子类

extends关键字用于类的继承
extends关键字后面是“父类”,extends关键字前面是“子类”
子类会继承父类的(default)/protected/public修饰的成员变量与方法

//Hulk
package com.imooc.object.Sample4;

public class Hulk extends Mark1{
    private void repair(){
        System.out.println("弹射备件替换战损组件");
    }

    public static void main(String[] args) {
            //子类继承父类的成员变量和方法。
            Hulk hulk=new Hulk();
            hulk.color="红色";
            hulk.movie="复仇者联盟2";
            hulk.title="反浩克装甲";
            hulk.description();
            hulk.repair();
}
}
//Mark85
package com.imooc.object.Sample4;

public class Mark85 extends Mark1{
    private void createShield(){
        System.out.println("弹射备件替换战损组件");
    }

    public static void main(String[] args) {
            //子类继承父类的成员变量和方法。
            Mark85 mark85=new Mark85();
            mark85.color="红色";
            mark85.movie="复仇者联盟4";
            mark85.title="马克85型";
            mark85.description();
            mark85.createShield();
        }
}

多态

多态是同一个行为具有多个不同表现形式或形态的能力

实现多态的关键是接口

接口(Interface)是一个抽象的类型,只提供方法的定义
实现类是一个接口的具体实现,要实现每一个接口方法的功能

根据区号返回服务语言

接口


实现类

implements




模拟客服服务


使用者

二、ArrayList类

ArrayList是Java内置的数据集合,用于存储多个数据
ArrayList是数组替代品,提供了更多的数据操作方法
ArrayList几乎是每一个项目中必用的类

1、向列表添加数据

对象名.add();
对象名.add(索引位置,数据)// 像当前数组尾部添加数据

2、泛型:<>

List <数据类型> 对象名 = new ArrayList<数据类型>();

3、得到指定位置数据

对象名.get(索引位置);

4、获得列表的数值总数

对象名.size();

5、移除数据

对象名.remove(索引位置);

6、移除最后一项数据

对象名.remove(对象名.size()-1);

7、遍历列表所有数据

For( 数据类型 变量名 :列表名){
//循环体
}

package com.imooc.object.Sample6;

import java.util.ArrayList;
import java.util.List;

public class ArrayListSample {
   public static void main(String[] args) {
     //泛型<类型>,用于规范列表中的数据
       List<String> bookList=new ArrayList<String>();//创建ArrayList对象
       bookList.add("红楼梦");//向列表末端追加数据
       bookList.add("西游记");
       bookList.add("水浒传");
       bookList.add("三国志");
       bookList.add("index:0,element“镜花缘");
       System.out.println(bookList);
       String bookName=bookList.get(2);//得到指定索引位置(从0开始)
       System.out.println(bookName);
       int size=bookList.size();//得到列表总数
       System.out.println(size);
       bookList.remove(2);
       bookList.remove(bookList.size()-1);
       System.out.println(bookList);
       for (String book:bookList){
           System.out.println("《"+book+"》");
       }
   }
}
上一篇 下一篇

猜你喜欢

热点阅读