我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【零基础??天速成 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 当成是一个数组,

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

输出:

可以看到输出没有问题。

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

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

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

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

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;}}

输出:

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

3. 包

1、包的创建

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

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

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

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

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. 访问修饰符

用 public 修饰,对外公开

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

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

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

老韩有一张图:

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 类的子类

来看演示:

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

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

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

7. super 关键字

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

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

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

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

需要注意的细节:

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

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

这里是 super 与 this 的比较:

8. 方法重写 Override

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

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

不过有一些注意事项:

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

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

写在最后:

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

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

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~

来源地址:https://blog.csdn.net/Locky136/article/details/132046583

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java常见知识点汇总(③)——面向对象基础

面向对象三要素:封装、继承、多态①. 封装:封装的意义,在于明确标识出允许外部使用的所有成员函数和数据项,或者叫接口。②. 继承:继承基类的方法,并做出自己的扩展;声明某个子类兼容于某基类(或者说,接口上完全兼容于基类),外部调用者可无需关
2023-06-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录