`

java三大特性基础简述(实例)

阅读更多
继承:
关键字:extends  如:
public class A extends B
这里A是子类,B是父类
子类里面既继承父类的所有的变量与方法,也可以自己在本类中添加新的成员变量与方法。这里就引出子类的方法重写--重写父类里面的方法与super关键字
事例:public class Car {//父类
";//父类成员,并初始化
public String color="黑色";//颜色
public int speed=1;//速度
public int level;//档位
public void shu(int num){
  level=num;//换挡
  speed =10*level*level;//变速
}
public void drive(){
  System.out.println("我是一辆" + color + "的轿车");
  System.out.println("现在以时速" + speed +"公里每小时的速度行驶中");
  System.out.println("车档位是:" + level + "档");
}
}
//子类
public class ZiCar extends Car {
public void drive(int num) {
  super.shu(5);
  super.drive();
}
public static void main(String[] args) {
  ZiCar zc = new ZiCar();
  zc.drive(5);
}
}
修饰符:private   public  protected和默认权限修饰符,这里主要讲private。
private:是私有权限修饰符,引出封装性定义。
当成员变量设置为私有权限后,其他类不能访问了,必须通过本类定义的设置器方法来设置修改成员变量的值。
事例:
**
*  定义Car类,在该类中定义字符串color和布尔类型的running两个成员变量,并设置它们的访问器与设置器方法。
*
* @author
*/
public class Car {
    private String color = "黑色"; // 颜色
    private boolean running; // 行驶状态
   
    /**
     * 设置color属性值的设置器方法
     *
     * @param color
     *            颜色参数
     */
    public void setColor(String color) {
        this.color = color; // 把参数color赋值给成员变量color
    }
   
       public String getColor() {
        return color; // 返回color属性值
    }
   
    public boolean isRunning() {
        return running; // 返回running属性值
    }
    public void setRunning(boolean running) {
        this.running = running; // 设置成员变量running
    }
}

public class Program {
    public static void main(String[] args) {
        Car whiteCar = new Car(); // 创建Car类的实例对象
        whiteCar.setColor("红色"); // 修改该实例中color属性
        whiteCar.setRunning(true); // 设置car对象的行驶状态
        System.out.println("color属性:" + whiteCar.getColor());
        System.out.println("running属性:" + whiteCar.isRunning());
    }
}
Object类中的equals方法,toString方法:
事例:
equals():
public class TempClass {
   
}
public class TestEquals {
    public static void main(String[] args) {
        String s1 = "123"; // 实例化两个对象,内容相同
        String s2 = "123";
        System.out.println("s1 equals s2 :" + s1.equals(s2)); // 使用equals()方法调用
        TempClass v1 = new TempClass(); // 实例化两个V类对象
        TempClass v2 = new TempClass();
        System.out.println("v1 equals v2 :" + v1.equals(v2)); // 使用equals()方法比较v1与v2对象
    }
}
========================================================================
toString():
public class Obj {
    public String toString() { // 重写toString()方法
        return "大家好,我是ObjectInstance类的实例对象。";
    }
   
    public static void main(String[] args) {
        Obj object = new Obj();
        System.out.println("输出ObjectInstance实例对象:\n" + object); // 打印本类对象
    }
}
多态性:
参数多态
package com.shuohua;
public class Speak {
/*
  * 说话的主题类   定义了speak()方法
  */
public void speak(){
  System.out.println("不同角色的说话方式");
}
}===============================================
package com.shuohua;
/*
* 魂淡类
*
*/
public class HunDang extends Speak{
/*
  * 魂淡的说话方式   重写父类方法
  */
public void speak(){
  System.out.println("修真界Boss————————————————");
  System.out.println("       魂淡悠哉悠哉的想说话:");
  System.out.println("\t好烦啊---总是那么多妹子找我。。。。");
  System.out.println("小龙反应:");
  System.out.println("\t艳遇啊,要不给小弟几个。。。。");
  System.out.println("===========================================");
}
}
==================================================
package com.shuohua;
public class KongGe extends Speak {
/*
* 空格类     重写父类方法
*/
public void speak(){
  System.out.println("魔界至尊:————————————————");
  System.out.println("    某人说走了。。。。空格前辈说:");
  System.out.println("\t小樱别走。。。。。");
  System.out.println("小龙反应:");
  System.out.println("\t好煽情啊,空格前辈!!!");
  System.out.println("===========================================");
}
}
==================================================
package com.shuohua;
public class YuLing extends Speak {
/*
  * 羽林类    重写父类方法
  */
public void speak(){
  System.out.println("仙界老大:——————————");
  System.out.println("    羽灵前辈:");
  System.out.println("\t小龙,你在干嘛勒?");
  System.out.println("小龙回应:");
  System.out.println("\t在听歌勒,不会有没声音吧??!!!  前辈、、、、、");
  System.out.println("===========================================");
}
}
=====================================================
package com.lz;
import com.shuohua.*;;//导入说话包
public class Master {
/*
  * 这是主人类   它将用于不同的人的话语
  */
public void lz(Speak s){
  System.out.println("凡人界小龙菜鸟正在。。。。。中-----各界反应:");
  s.speak();
}
}=======================================================
package com.lz;
import com.shuohua.HunDang;//导入魂淡类
import com.shuohua.KongGe;//导入空格类
import com.shuohua.YuLing;//导入羽林类
public class YunXing {
public static void main(String[] args) {
  HunDang hd = new HunDang();
  KongGe  kg = new KongGe();
  YuLing  yl = new YuLing();
  Master   m = new Master();
  System.out.println("各界人马就绪:\n=================================");
  m.lz(yl);
  m.lz(kg);
  m.lz(hd);
  System.out.println("\t小龙忽悠忽悠的路过。。。。。");
}
}
抽象类:关键字--abstract
直接事例吧!
//抽象类  Shape
public abstract class Shape {
    public String getName() {//获取图形名称
        return this.getClass().getSimpleName();
    }
   
    public abstract double getArea();//获取图形面积---抽象方法。需要在子类里面实现方法
}
======================================================================
public class Circle extends Shape {//继承抽象父类
   
    private double radius;//声明私有变量成员
   
    public Circle(double radius) {//获取图形半径
        this.radius = radius;
    }
       public double getArea() {//计算面积
       
        return Math.PI * Math.pow(radius, 2);
    }
   
}
=====================================================================================
public class Rectangle extends Shape {
   
    private double length;
    private double width;
   
    public Rectangle(double length, double width) {//获取长与宽
        this.length = length;
        this.width = width;
    }
   
    @Override
    public double getArea() {//计算面积
        return length * width;
    }
   
}
=========================================================================
public class Test {//测试类
    public static void main(String[] args) {
        //创建各自类的对象
        Circle circle = new Circle(1);
        System.out.println("图形的名称是:" + circle.getName());
        System.out.println("图形的面积是:" + circle.getArea());
        Rectangle rectangle = new Rectangle(1, 1);
        System.out.println("图形的名称是:" + rectangle.getName());
        System.out.println("图形的面积是:" + rectangle.getArea());
    }
}
接口:关键字----interface
接口也是抽象类!
而类实现的关键字---implements
继承由于不能一个子类多重继承几个父类,而接口正好却能够实现,一个类能多重实现多个接口类
事例就不必细说了。


提升事例篇:
1.单例模式的应用
public class Emperor {
    private static Emperor emperor = null;
    private String name = "我是皇帝";
    private Emperor() {// 把构造方法私有化
    }
    public static Emperor getInstance() {// 定义获取实例的方法
        if (emperor == null) {// 确保只创建一个实例对象
            emperor = new Emperor();
        }
        return emperor;
    }
    public void setName(String name) {// 修改name成员变量的方法
        this.name = name;
    }
    public void sayInfo() {// 输出信息的方法
        System.out.println(name + ":有事奏来,无事退朝");
    }
   
}
=====================================================================
public class EmperorTest {
    public static void main(String[] args) {
        System.out.println("创建皇帝1对象:");
        Emperor emperor1 = Emperor.getInstance();// 获取实例对象
        emperor1.sayInfo();// 输出信息
        System.out.println("创建皇帝2对象:");
        Emperor emperor2 = Emperor.getInstance();// 获取实例对象
        emperor2.setName("我是乾隆");// 修改name成员变量
        emperor2.sayInfo();// 输出信息
        System.out.println("创建皇帝3对象:");
        Emperor emperor3 = Emperor.getInstance();// 获取实例对象
        emperor3.sayInfo();// 输出信息
    }
}
========================================================================
2.重新定义对象的等式判断
public class Cat {
    private String name;
    private int age;
    private double weight;
    private String color;
   
    public Cat(String name, int age, double weight, String color) {
        this.name = name;
        this.age = age;
        this.weight = weight;
        this.color = color;
    }
   
    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        Cat cat = (Cat) obj;
        return name.equals(cat.name) && (age == cat.age)
                && (weight == cat.weight) && (color.equals(cat.color));
    }
   
    public String getInfo() {
        StringBuilder sb = new StringBuilder();
        sb.append("名字:" + name + "  ");
        sb.append("年龄:" + age + "  ");
        sb.append("重量:" + weight + "  ");
        sb.append("颜色:" + color + "  ");
        return sb.toString();
    }
}
==============================================================================
public class Demo {
    public static void main(String[] args) {
        Cat cat1 = new Cat("咖啡猫", 12, 21, "黑色");    // 创建第1个猫咪对象
        Cat cat2 = new Cat("波斯猫", 12, 21, "白色");    // 创建第2个猫咪对象
        Cat cat3 = new Cat("咖啡猫", 12, 21, "黑色");    // 创建第3个猫咪对象
        System.out.println("猫咪1号:" + cat1.getInfo()); // 输出每个猫咪对象的属性
        System.out.println("猫咪2号:" + cat2.getInfo());
        System.out.println("猫咪3号:" + cat3.getInfo());
        System.out.println("猫咪1号是否与猫咪2号相同:" + cat1.equals(cat2));
        System.out.println("猫咪1号是否与猫咪3号相同:" + cat1.equals(cat3));
    }
}
0
4
分享到:
评论

相关推荐

    毕向东java基础PPT

    Java的设计目标是具有简单性、面向对象、健壮性、安全性、平台独立性等特性,这使得它成为开发跨平台应用程序的理想选择。 【毕向东老师的Java教学】 毕向东老师是中国知名的Java教育专家,他的教学风格深入浅出,...

    java编程基础及应用

    Java编程基础及应用是计算机科学领域中的重要主题,尤其对于初学者来说,它是入门软件开发的必经之路。Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle Corporation的一部分)在1995年发布...

    Sun公司的JAVA实例手册

    这本书的内容丰富多样,涵盖了从基础概念到高级特性的全面教程,旨在帮助开发者提升Java编程技能。由于是PDF格式,读者可以方便地在各种设备上阅读和查阅。 1. **Java简介**:书中首先介绍了Java的历史、特点和运行...

    Java理论基础.pdf

    从提供的文档内容来看,这是一份关于Java语言的基础理论知识,涵盖了Java的核心概念、类与对象的使用、接口、数组操作、异常处理等多个方面的知识点。以下是对文档内容中关键知识点的详细阐述: 1. Java基础语法:...

    2020老杜最新Java零基础视频教程课件

    在本套《2020老杜最新Java零基础视频教程课件》中,主要针对的是完全没有编程背景或Java知识的初学者。课程内容全面,旨在帮助这些学员建立起坚实的Java编程基础,为他们进入Java开发领域铺平道路。以下是本教程涉及...

    北大Java教学PPT

    这份PPT包含了丰富的Java基础知识,旨在帮助学习者系统地掌握这门广泛应用于软件开发、互联网服务和大数据处理的编程语言。 在Java教学过程中,PPT可能会涵盖以下关键知识点: 1. **Java概述**:介绍Java的历史、...

    Java基础9共9页.pdf.zip

    3. **封装、继承和多态**:这是面向对象编程的三大特性。封装隐藏了对象的实现细节,提供公共接口供外部访问;继承允许子类从父类继承属性和方法,实现代码复用;多态则是指同一种行为在不同对象上有不同的表现形式...

    Java技术教程.基础篇.rar

    这个基础篇教程可能会包含这些内容的实例代码、练习题和解析,帮助初学者逐步掌握Java编程基础,为进一步学习Java进阶知识和实际项目开发奠定坚实基础。通过系统学习并实践教程中的内容,你可以熟练地运用Java进行...

    《Java从入门到精通(第4版)》随书PPT

    3. **类与对象**:讲解面向对象编程的基本概念,包括类的定义、对象的创建与使用,以及封装、继承、多态三大特性。 4. **数组与集合框架**:详细阐述一维与多维数组的使用,以及ArrayList、LinkedList、HashSet、...

    java2实用教程

    《java2实用教程》涵盖了Java语言的基础知识和一些高级特性,适合初学者系统学习Java编程。以下是书中各章节的知识点总结: 第一章:JAVA语言入门 1.1 JAVA的诞生:介绍了Java语言的历史背景,它是由Sun ...

    swi-202JAVA2编程技术基础pdf.rar

    这份文档可能包含了从基础语法到高级特性的全面讲解,旨在帮助读者深入理解Java语言,并能够熟练地运用它进行软件开发。 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被甲骨文公司收购)于...

    java基础笔记

    首先,笔记介绍了IT行业,帮助读者理解行业背景,对比了C、C++和Java三种编程语言的特性。Java语言因其跨平台性、自动内存管理(垃圾回收)以及丰富的类库而被广泛使用。 接着,笔记深入讲解了JDK(Java ...

    经典JAVA编程教程

    16. **Java EE基础**:简述Java企业版(Java EE),包括Servlet、JSP和MVC设计模式等Web开发基础。 本教程全面覆盖了Java的基础知识,适合初学者系统学习。每个章节都应结合实例代码进行实践,以加深理解。此外,...

    2010最新Java私塾基础入门电子书

    Java私塾基础入门电子书是针对初学者...这本书可能会涵盖以上这些主题,通过实例和练习帮助读者逐步掌握Java编程的基础知识。通过系统学习,初学者可以建立起坚实的语言基础,为后续的进阶学习和实际项目开发做好准备。

    java面试宝典

    231、Java语言的11个关键特性. 54 232、说出Servlet的生命周期,并说出Servlet和CGI的区别。 55 233、说出在JSP页面里是怎么分页的? 55 234、存储过程和函数的区别 55 235、事务是什么? 55 236、游标的作用?如何...

    2010新版Java教程 966页

    14. **Java的高级特性**:如枚举、注解、泛型、Lambda表达式(Java 8新增)、Optional类等。 15. **Java的并发编程**:涵盖线程池、Future、Callable接口,以及Java并发包(java.util.concurrent)中的高级工具。 ...

    清华大学Java教程

    由于其“一次编写,到处运行”的特性,Java在软件开发领域得到了广泛应用,尤其在网络应用、移动应用、企业级应用等方面表现突出。 清华大学的Java教程是一套为初学者设计的学习资源,旨在帮助新手快速掌握Java编程...

    JAVA大学简明教程

    《JAVA大学简明教程》是一本面向初学者的JAVA编程指南,旨在帮助读者从零基础开始,逐步掌握JAVA这门强大的编程语言。本教程通过易懂的语言和丰富的实例,使学习过程更为直观和有趣。 首先,JAVA作为一种面向对象的...

    CoreJava课程学习资料--Java核心技术(第8版)

    《Java核心技术》是Java开发人员必读的经典教材,尤其对于初学者和希望深入理解...通过学习这两卷内容,开发者不仅可以掌握Java编程的基础,还能进一步了解和运用Java的高级特性,为成为专业的Java开发者奠定坚实基础。

    面向对象Java课件

    在Java中,面向对象主要涉及三大核心概念:封装、继承和多态。封装是将数据和操作数据的方法绑定在一起,形成一个独立的单元,以提高代码的安全性和可维护性。在Java中,我们通过类来实现封装,通过private、public...

Global site tag (gtag.js) - Google Analytics