【零基础??天速成 Java】Day2 - 初识面向对象

这篇具有很好参考价值的文章主要介绍了【零基础??天速成 Java】Day2 - 初识面向对象。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

1. 可变参数的使用

2. 构造器

3. 包

1、包的创建

2、包的使用

3、包的命名规范

4、常用的包

5. 访问修饰符

6. 继承 

7. super 关键字

8. 方法重写 Override

写在最后:


前言

我的 java 基础学习,跟的是韩顺平的 java 课程~

本篇文章涵盖视频 216 ~ 305 集里面 java 与 C++ 不同的知识点~ 

1. 可变参数的使用

java 支持可变参数,当你需要传递些值,而这些值的类型相同的时候,

可以使用可变参数来传递,来看例子:

public class VarMethod {
	public static void main (String[] args) {
		HspMethod m = new HspMethod();
		System.out.print(m.Sum(1, 5, 10));
	}
}

class HspMethod {
	// 我们可以把 nums 看成是一个数组
	int Sum(int... nums) {
		int sum = 0;
		for(int i = 0; i < nums.length; i++) {
			sum += nums[i];
		}
		return sum;
	}
}

我们可以把接收可变参数的那个参数 nums 当成是一个数组,

这样就能随意计算任意个整形值相加了。

输出:

【零基础??天速成 Java】Day2 - 初识面向对象,零基础??天速成 Java,java

可以看到输出没有问题。

这里要注意一些细节问题,

1、可变参数可以是0 个或者多个;

2、如果它和普通参数在一起,必须把可变参数放在最后;

3、一个形参列表只能出现一个可变参数。

2. 构造器

java 的构造器跟 C++ 的构造函数几乎一模一样,

我们可以来看一下构造器的语法:

public class Construct {
	public static void main(String[] args) {
		Person p = new Person("张三", 18);
		System.out.print(p._name + (p._age + ""));
	}
}

class Person {
	String _name;
	int _age;

	public Person(String name, int age) 
	{
		_name = name;
		_age = age;
	}
}

输出:

【零基础??天速成 Java】Day2 - 初识面向对象,零基础??天速成 Java,java

其他方面就跟 C++ 基本上没有区别了。

3. 包

1、包的创建

java 的包是根据目录来区分的,

在 IDEA 中建包,使用 '.' 作为一级目录的分隔符:

比如在 src 目录下,我们建了两个包,一个是 com.a,一个 com.b,就是这样的效果:

【零基础??天速成 Java】Day2 - 初识面向对象,零基础??天速成 Java,java

这样子我们就可以创建两个同名的类而不冲突了:

【零基础??天速成 Java】Day2 - 初识面向对象,零基础??天速成 Java,java

2、包的使用

我们来写一段代码调用一下这两个包:

package com.use;

import com.a.Dog;

public class Use {
    public static void main(String[] args) {
        Dog da = new Dog();
        System.out.println(da);

        com.b.Dog db = new com.b.Dog();
        System.out.println(db);
    }
}

可以发现使用第一个 a 包的时候自动 import 了,而使用 b 包的时候,

他在前面带上了 com.b。

3、包的命名规范

一般而言,是:

com.公司名.项目名.业务模块名。

4、常用的包

java.lang 基本包,自动包含了。

java.util 包含系统常用的工具,比如 Scanner。

java.net 网络包,网络开发

java.awt 做 java 页面开发的,GUI 

5. 访问修饰符

1、用 public 修饰,对外公开

2、用 protected 修饰,对子类和同一个包中的类公开

3、默认(不修饰),对同一个包的类公开

4、用 private 修饰,只有类本身可以访问,不对外公开

老韩有一张图:

【零基础??天速成 Java】Day2 - 初识面向对象,零基础??天速成 Java,java

6. 继承 

继承的语法:

class 子类 extends 父类 {

}

注意:

1)子类会自动拥有父类定义的属性和方法(前提是由 public 和 protected 修饰)

2)父类又叫做超类,基类。

3)子类又叫做派生类。

这里还是写一段代码举个例子吧~

public class Extend {
    public static void main(String[] args) {
        Student student = new Student();
        student.Speak();
    }
}

class Person {
    protected String _name;
    protected int _age;
    protected int _money;

    public void Speak() {
        System.out.println("hello exthend!");
    }
}

class Student extends Person {
    private int _id;
}

子类 Student 继承 父类 Person。

继承相关的细节:

1)子类对象会默认调用父类的默认构造器,如果想要指定就需要用到 super

举个例子:

public class Extend {
    public static void main(String[] args) {
        Student student = new Student();
    }
}

class Person {
    protected String _name;
    protected int _age;
    protected int _money;
    Person() {
        System.out.println("Person()");
    }

    Person(String name) {
        _name = name;
        System.out.println("Person(String name)");
    }
    public void Speak() {
        System.out.println("hello exthend!");
    }
}

class Student extends Person {
    private int _id;
    public Student() {
        super("张三");
        System.out.println("Student()");
    }
}

这里使用 super 就能指定调用父类的有参构造了。

2)super() 和 this() 都只能放在构造器第一行(他们不能共存)

this() 可以让默认构造器调用其他重载的构造器。

3)使用 Ctrl + h 可以看类的继承关系,注意所有类都是 Object 类的子类

来看演示:

【零基础??天速成 Java】Day2 - 初识面向对象,零基础??天速成 Java,java

【零基础??天速成 Java】Day2 - 初识面向对象,零基础??天速成 Java,java

4)子类最多只能继承一个父类(java 是单继承体系)

那如果我们又想要 A 类,又想要 B 类咋办?

可以让 A 类先继承 B类,然后我们再继承 A 类也能够实现。 

7. super 关键字

super 代表的是父类的引用,用于访问父类的属性,方法,构造器

super.属性名;可以访问父类属性

super.方法名(参数列表);可以访问父类方法

super(参数列表);可以访问父类构造器(只能放在构造器第一行)

需要注意的细节:

1)如果出现方法同名,需要用 super 才能调用,如果没有同名直接用就行。

2)super 的访问不局限在父类,爷爷类之上也可以,不过 super 遵循就近原则。

这里是 super 与 this 的比较:

【零基础??天速成 Java】Day2 - 初识面向对象,零基础??天速成 Java,java

8. 方法重写 Override

java 的方法重写和 C++ 的是一样的,

就是子类方法的参数,返回值,方法名称和父类方法相同,就是方法重写。

不过有一些注意事项:

1)子类方法不能缩小父类方法的访问权限。

2)方法重写和重载的区别分析:

【零基础??天速成 Java】Day2 - 初识面向对象,零基础??天速成 Java,java

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~文章来源地址https://www.toymoban.com/news/detail-657323.html

到了这里,关于【零基础??天速成 Java】Day2 - 初识面向对象的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [Java基础]面向对象

           目录 1、对象和类 2、类之间的关系 3、引用 4、对象的创建和使用 5、构造函数/构造方法 6、内存解析        在这篇文章中,我们将学习面向对象的思想,并学习如何使用面向对象思想编程。在学习面向对象编程之前,我们先了解一下编程语言的发展:机器语言,汇

    2024年02月08日
    浏览(40)
  • 〔005〕Java 基础之面向对象

    对象: 是一种特殊的数据结构 对象: 使用类 new 出来的,有了类就可以创建对象,例 Random r = new Random() ,其中 r 就是一个对象 格式: public class 类名 { 变量和一些类方法 } 面向对象编程,更加符合人类的思维习惯,编程也会更直观 其实万物皆对象,如果想操作学生数据,就

    2024年02月05日
    浏览(36)
  • Java基础练习十(面向对象)

    以下名词中哪些是对象? 猫 狗 Tom Jerry 人 帅哥 美女 迪丽热巴 胡歌 Phone iPhone 14 Pro Max 《Java面向对象》 1. 编写一个Student类,包含name、gender、age、id、score属性,分别为String、String、int、int、double类型。类中声明一个say方法,返回String类型,方法返回信息中包含所有属性值。

    2024年02月12日
    浏览(33)
  • 【java】面向对象的编程基础

    true false 这里输入set和get可以自动将函数补全,传参初始化在构造属性之后 cc ccccc coleak 这里说明先构造属性,再执行代码块,再初始化 静态代码块 4 4 我是静态变量初始化 我是静态代码块 我是成员变量初始化 我是普通代码块 我是构造方法 快速构造,点击生成,构造函数,

    2023年04月16日
    浏览(43)
  • Java基础 --- 面向对象综合训练

    格斗游戏,每个游戏角色的姓名,血量,都不相同,在选定人物的时候(new对象的时候),这些信息就应该被确定下来。 补充: 正题: 定义数组存储3个商品对象。 商品的属性:商品的id,名字,价格,库存。 常见三个商品对象,并把商品对象存入到数组当中。 定义数组循

    2024年03月19日
    浏览(38)
  • Java基础之基础语法与面向对象

    小知识 Java由Sun公司于1995年推出,2009年Sun公司被Oracle公司收购,取得Java的版权 Java之父:James Gosling(詹姆斯·高斯林)   专业术语 JDK:java development kit(java开发工具包) JRE:java runtime environment(java运行环境) JVM: java virual machine(java虚拟机:跨平台的核心)   java实现跨平

    2024年02月08日
    浏览(35)
  • Java面向对象程序设计实验报告(实验二 面向对象基础练习)

     ✨ 作者: 命运之光  ✨  专栏:Java面向对象程序设计实验报告 目录 ✨一、需求设计 ✨二、概要设计 ✨三、详细设计 ✨四、调试结果 ✨五、测试结果 ✨附录:源程序代码(带注释) 测试类demo2 Address类 Employee类 实验二 面向对象基础练习 实验环境: Eclipse+JDK 实验目的:

    2024年02月06日
    浏览(71)
  • Java基础(七)面向对象编程(高级)

    回顾类中的实例变量(即非static的成员变量) 创建两个Circle对象: Circle类中的变量radius是一个实例变量(instance variable),它属于类的每一个对象,c1中的radius变化不会影响c2的radius,反之亦然。 如果想让一个成员变量被类的所有实例所共享,就用static修饰即可,称为类变量(

    2023年04月16日
    浏览(40)
  • 【Java基础篇 | 面向对象】—— 封装详解

    个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【JavaSE_primary】 本专栏旨在分享学习Java的一点学习心得,欢迎大家在评论区讨论💌 封装概念 : 将数据和对数据的操作封装在一个类中,对外部的访问只通过类提供的

    2024年02月09日
    浏览(34)
  • 【狂神说Java】Java零基础学习笔记-面向对象

    面向过程思想 步骤清晰简单,第一步做什么,第二步做什么.... 面对过程适合处理一些较为简单的问题 面向对象思想 物以类聚, 分类 的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。

    2024年02月12日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包