零基础学Java第六节(面向对象二)

7.7 Java练习【1】(父类 Person类,成员变量:(1)姓名:name 私有 String 类型(2)年龄:age 私有 int 类型(3)性别: sex 私有 String类型) 父类 Person类,成员变量:(1)姓名:name 私有 String 类型(2)年龄:age 私有 int 类型(3)性别: sex 私有 String类型 阅读详情

优快云话题挑战赛第1期
活动详情地址:https://marketing.youkuaiyun.com/p/bb5081d88a77db8d6ef45bb7b6ef3d7f
参赛话题:Java学习记录
话题描述:零基础学习Java类(面向对象二)
————————————————
版权声明:本文为优快云博主「Code_ForYou」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

本篇文章是《零基础学Java》专栏的第六篇文章,文章采用通俗易懂的文字、图示及代码实战,从零基础开始带大家走上高薪之路!

本篇文章是《零基础学Java》专栏的第六篇文章,文章采用通俗易懂的文字、图示及代码实战,从零基础开始带大家走上高薪之路!

本文章首发于公众号【编程攻略】

继承

创建一个Person类

我们创建一个用于描述人的类。我们怎么抽象出一个人这个类呢?我们以不同的角度做抽象,得到的属性和行为都会有些区别。这里,我们主要从人的社会属性来抽象。为了表示性别,我们先顶一个枚举类型,该枚举类型中有两个值,用于表示男、女,代码如下:

public enum Sex {male,female}

上面的代码写入单独的一个源代码文件中:Sex.java,因为上面的枚举类型是需要公开使用的,所以,也需要定义为public,因此,必须将之放在独立的源文件中 。

再定义Person这个类,代码如下:

public class Person{
	private String name;//姓名
	private Sex sex;//性别
	private Date birthday;//出生日期
	private String ID;//身份证号

	//下面是一系列上述私有成员变量的setter和getter
	public void setName(String name){
		this.name = name;
	}

	public String getName(){
		return name;
	}

	public void setSex(Sex sex){
		this.sex = sex;
	}

	public Sex getSex(){
		return sex;
	}

	public void setBirthday(Date date){
		birthday = date;
	}

	public Date getBirthday(){
		return birthday;
	}

	public void setID(String ID){
		this.ID = ID;
	}

	public String getID(){
		return ID;
	}

	public Person(String name, Sex sex, Date birthday, String ID){
		this.name = name;
		this.sex = sex;
		this.birthday = birthday;
		this.ID = ID;
	}
}

我们编译上面的Person.java,它所涉及到的相关的类也会一并编译完成,如:Sex.java文件。

定义学生子类

如果我们考虑一个班级的组成,大致有三种类别的人员,学生、教师、辅导员,我们依次进行定义。这三类都具有人所具有的属性,因此,我们没必要在三个类中重新定义那些公共属性,我们只需继承Person类即可。当然,这些类一定也具有不同于普通人的属性和行为。先定义学生类。

public class Student extends Person {
	private String studentID;//学号
	private Date rollInDate;//入学时间

	public void setStudentID(String studentID){
		this.studentID = studentID;
	}

	public String getStudentID(){
		return studentID;
	}

	public void setRollInDate(Date rollInDate){
		this.rollInDate = rollInDate;
	}

	public Date getRollInDate(){
		return rollInDate;
	}

	public Student(String name, 
					Sex sex, 
					Date birthday, 
					String ID, 
					String studentID, 
					Date rollInDate){
		super(name,sex,birthday,ID);//对父类的构造方法的调用
		//虽然Student能够继承父类中的私有成员,
		//但是却不能直接像使用本类中的成员变量一样直接调用,
		//因此,下句是不能调用的
		//this.name = name; 
		this.studentID = studentID; //本类的成员变量,当然可以这么写
		this.rollInDate = rollInDate;
	}
}

Student类继承了Person中所有的成员,包括私有的,但是对于子类虽然拥有继承自父类的成员,却不能直接使用。子类可以直接使用的继承来的成员有public和protected修饰的,对于无修饰符的成员变量,如果子类同父类不在同一个包,也是不能使用的。示例如下:

class A{
	private int x = 0;
	protected int y = 1;
	public int z = 2;
	int m = 3;

  	A(){
    	System.out.println("在父类里");
  	}

  	A(String s){
    	System.out.println("在父类里 "+s);
  	}
}

public class B extends A{
//在此处加上int x;会怎么样呢?
  	B(){
    	System.out.println("在子类里");
  	}
  	B(String s){
    	super(s);
    	System.out.println("在子类里 "+s);

  	}
 	public static void main(String s[]){
    	B b=new B("对吗?");
    	System.out.println(b.x);//不对哦
    	System.out.println(b.y);
    	System.out.println(b.z);
    	System.out.println(b.m);
  	}
}

继承具有以下特征:

  • 子类只能继承自一个父类,它继承父类中的所有成员,甚至包括父类中private所修饰的成员变量或方法。子类中可以定义新的成员变量和成员方法,也可以对父类中的成员变量及成员方法进行重新定义,这种对方法的重新定义称为复写(override)

  • 如果改变了父类中某些功能,而这些功能在子类中未进行复写,那么修改父类的功能改变会影响到子类。

  • 父类具有所有继承自它的子类的共同的特征和行为。

继承最基本的作用:代码重用。 继承最重要的作用:方法可以复写。

super的使用

我们在Student的构造方法中使用了supper(name,sex,birthday,ID);,这是对父类的构造方法的调用。对于继承关系的类,子类的构造方法总是会调用父类的构造方法:如果没有显式调用,系统会自动调用父类的无参构造方法,但是一旦显式调用,系统就不会再调用父类中的无参构造方法。

class A{
	A(){
		System.out.println("in A()");	
	}
}

class B extends A{
	B(){
		System.out.println("in B()");	
	}
}

class C extends B{
	C(){
		System.out.println("in C()");	
	}
}

class TestExtends{
	public static void main(String[] args){
		C c=new C();
	}
}

super的使用同this相似,但是它们两者的本质是不同的,this是引用,而super不是,super指向的不是父类对象,它代表当前子类对象中继承自父类的属性和行为。如图:

什么时候使用super呢?当子类和父类中具有同名的成员时,例如,子类和父类中都有name这个属性,如果要在子类对象中访问继承自父类中的name属性,就需要使用 super进行区分。

super可以用在什么地方?

  • 第一:super和this一样可以用在非静态方法中,不能用在静态方法中。
  • 第二:super可以用在构造方法中。一个构造方法第一行如果没有this(...);,也没有显式的去调用super(...);,系统会默认调用super(),因此,如果父类中没有缺省构造方法,则会出错(大家如果注释掉上面代码中的super,测试一下);
  • 注意:super(...);的调用只能放在构造方法的第一行。因此,super(....)和this(....)不能共存。super(...);只是调用了父类中的构造方法,并不会创建父类对象。
复写(override)

复写指子类重定义了父类中的同名方法。什么时候方法要进行复写?如果父类中的方法已经无法满足当前子类的业务需求,需要将父类中的方法功能进行重新进行定义。子类如果复写父类中的方法之后,子类对象一定调用的是复写之后的方法。

发生方法复写的条件:

  1. 发生在具有继承关系的两个类之间
  2. 复写发生在继承关系中,必须具有相同的方法名,相同的返回值类型,相同的参数列表。
  3. 复写后的方法不能比被复写的方法拥有缩小的访问权限。
  4. 复写后的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;
  5. 私有的方法不能被复写,但可以在子类定义和父类中同名的方法(但不称之为复写)
  6. 构造方法无法被复写。因为子类同父类的构造方法不同。
  7. 复写指的是成员方法,和成员变量无关。
class A{
  	private int x=0;
  	protected int y=1;
  	public int z=2;
  	int m=3;

  	void t1(){
    	System.out.println("在父类t1里");
  	}
}

public class B extends A{
  	void t1(){
    	super.t1();
    	System.out.println("在子类t1里");
  	}
  	public static void main(String s[]){
    	B b=new B();
    	b.t1();
    	System.out.println(b.m);
  	}
}

final关键字

final关键字可以出现在类名前、方法前、局部变量前、成员变量前、形参前,它具有如下作用:

  • final修饰的类无法被继承
  • final修饰的方法无法被复写
  • final修饰的局部变量,一旦赋值,不可再改变
  • final修饰形参,形参的值在方法体中也无法改变
  • final修饰的成员变量必须手动初始化,不能取它的默认值,一般和static联用,如:
public static final int i = 100;
  • final修饰的引用类型,该引用不可再重新指向其他的java对象。但是final修饰的引用指向的对象的属性是可以修改的,切不可混为一谈。

定义教师子类

教师类除了它具有作为人所具有的特征之外,更多的是教师的教务特征和功能,由此,我们先定义一个描述课程的类:Course,如下:

public class Course{
	private String courseName;
	private int courseId;

	public Course(int courseId, String courseName){
		this.courseId = courseId;
		this.courseName = courseName;
	}

	public void setCourseName(String courseName){
		this.courseName = courseName;
	}

	public String getCourseName(){
		return courseName;
	}

	public void setCourseId(int courseId){
		this.courseId = courseId;
	}

	//toString方法继承自Object类
	public String toString(){
		System.out.println("课程编号:" + courseId + "\n课程名称:" + courseName);
	}
}

我们定义教师类:Teacher如下:

public class Teacher extends Person {
	private String teacherID;//工号
	private Date rollInDate;//入职时间
	private Course[] teachingCourse; //教授的课程

	public void setTeacherID(String studentID){
		this.teacherID = teacherID;
	}

	public String getTeacherID(){
		return teacherID;
	}

	public void setRollInDate(Date rollInDate){
		this.rollInDate = rollInDate;
	}

	public Date getRollInDate(){
		return rollInDate;
	}

	public void setTeachingCourse(Course[] teachingCourse){
		this.teachingCourse = teachingCourse;
	}

	public Course[] getTeachingCourse(){
		return teachingCourse;
	}

	public Teacher(String name, 
					Sex sex, 
					Date birthday, 
					String ID, 
					String teacherID, 
					Date rollInDate,
					Course[] teachingCourse){
		super(name,sex,birthday,ID);//对父类的构造方法的调用
		//虽然Student能够继承父类中的私有成员,
		//但是却不能直接像使用本类中的成员变量一样直接调用,
		//因此,下句是不能调用的
		//this.name = name; 
		this.teacherID = teacherID; //本类的成员变量,当然可以这么写
		this.rollInDate = rollInDate;
		this.teachingCourse = teachingCourse;
	}
}

定义辅导员类

辅导员是教师,但辅导员在教师的功能基础上又多了一些管理功能,所以辅导员类应该继承自教师类,代码如下:

public class Counsellor extends Teacher{
	
}

转型(cast)

对于上面所定义的类,我们可以说:a student is a person,a teacher is a person,a counsellor is a teacher,a counsellor is a person。从这些说法,我们可以看出来一个子类对象的类型是可以看作父类类型的。因此,下面的语句是合法的:

Person p = new Student();

这种情况,我们称之为向上转型(upcast),这有点类似于基本类型中的自动类型转换。

有时候,我们也需要把某个父类对象当作一个子类对象使用,我们不鼓励这么用,因为这是不自然的,就像我们不能说:a person is a counsellor一样,如果非要这么做,我们必须像基本类型的强制类型转换一样使用强制转换,我们称之为向下转型(downcast),如下例:

Teacher teacher = new Teacher();
Counsellor counsellor = (Counsellor)teacher;

上例中,我们使用了缺省构造方法,但是,我们并没有定义相关类的缺省构造方法,我们只是为了说明转型这个概念,大家为了使得上例合法,要么使用带参的构造方法,要么,修正前面定义的相关类。

转型示例:

class T1{
    int i = 1;
}

class T2 extends T1{
    int i = 2;
}

public class TUpcast{
    public static void main(String[] args){
        T2 t2 = new T2();
        System.out.println("t2.i=" + t2.i +"upcast t2.i=" + ((T1)t2).i);
        //这说明子类中可以重新定义父类中的成员变量,同名的可以隐藏父类中的同名变量,也就是说他们是不同的变量
    }
}

定义班级类

一个班级的基本组成,有若干学生、若干教师、一个辅导员,我们定义班级类如下:

public class Classes{
	public String className;
	public int classId;
	public Student[] students;
	public Teacher[] teachers;
	public Counsellor counsellor;

	public Classes(int classId, 
					String className, 
					Student[] students, 
					Teacher[] teachers, 
					Counsellor counsellor){
		this.classId = classId;
		this.className = className;
		this.students = students;
		this.teachers = teachers;
		this.counsellor = counsellor;
	}
}

一旦某个类创建及测试后,它便具有了某种有用的功能,我们可以创建该类的对象,通过该对象,使用定义好的功能。除此之外,我们还可以通过使用类的继承机制进行复用,也可以把对象放入一个新的类中,称为成员对象,这种新类由其它类对象组成的情况,称为组合(composition)。如上面的Classes类就是由已有的类成员组合而成。

多态

我们由下面的例子来解释什么是多态,如下:

class Animal{
	void eat(){

	}
}

class Cat extends Animal{
	void eat(){
		System.out.println("鱼好吃!");
	}

	void chasingMouse(){
		System.out.println("追啊追,追的好开心!");
	}
}

class Rabbit extends Animal{
	void eat(){
		System.out.println("萝卜比鱼好吃!");
	}

	void run(){
		System.out.println("我比乌龟跑得快!");
	}
}

class Test{

	public static void callEat(Animal animal){
		animal.eat();
	}

	public static void main(String[] args) {
		Cat cat = new Cat();
		Rabbit rabbit = new Rabbit();

		//下面的两个calEat方法在执行的时候,会根据传入的实参类型,选择执行不同类中的eat
		//这种情况就是多态
		callEat(cat);
		callEat(rabbit);

		//animal变量存放的为其子类的对象,执行子类对象中的eat方法
		Animal animal = cat;
		animal.eat();

		animal = rabbit;
		animal.eat();
		//animal.chasingMouse();
		((Rabbit)animal).run(); //原本animal引用的就是Rabbit对象,downcast是可以的
		((Cat)animal).chasingMouse();//原本animal引用的是Rabbit,rabbit是不能转换为cat的
		
	}
}

多态性是通过重载和复写及upcast来体现的。使用多态可以使代码之间的耦合度降低。项目的扩展能力增强。

光电振荡器(OEO):从原理到应用,解锁高频微波信号新纪元 本文深入解析了光电振荡器(OEO)的核心原理与前沿应用。OEO通过巧妙的光-电-光转换机制,利用光学谐振腔产生高频、高纯度、低相位噪声的微波信号,有效突破了传统电子电路的频率瓶颈。文章详细拆解了其工作流程,并探讨了在雷达系统、高速光通信及精密测量等领域的硬核应用价值。 阅读详情

相关推荐

深入解析:如何基于开源p-net快速开发Profinet从站服务

开源p-net协议栈为工业设备开发者打开了通往Profinet世界的大门。随着工业互联网的发展,软协议栈方案将在边缘计算领域展现更大潜力。该文章完整实现了PROFINET从站的核心功能,可直接作为产品开发的基础框架。实际部署时需根据具体硬件平台调整网络驱动和实时性配置。

极地星辰 3884

java学生选课系统_java实现学生选课系统

本文为大家分享了java实现学生选课系统的具体代码,供大家参考,具体内容如下案例要求:学生(学号,姓名,专业,所选课程{<3})老师(工号,姓名,所教课程{<3})课程(课程号,课程名,学分,教师,已选课学生{<30})选课系统代码如下://teacherpublic class Teacher {private int id;private String teacherName...

weixin_29635919的博客 5557

LSTM预测股票数据---数据预处理

# 导入相应的模块 import pandas as pd import numpy as np import matplotlib.pyplot as plt import tensorflow as tf # 获取训练集 def get_train_data(data,batch_size = 60 ,time_step = 20,train_begin = 0,train_end = 58...

qq_35358021的博客 3360

零基础入门学习java第六节:Java字符串

零基础入门学习java第六节:Java字符串 字符串,是我们最常用的类型,每个用双引号来表示的串都是一个字符串。Java中的字符串是一个预定义的类,跟C++ 一样叫String,而不是Char数组。至于什么叫做类,暂时不做过多介绍,在之后的篇章中会有关于类的详细介绍,在这里,只需要将类理解为一个模具,就像做月饼那样,想要什么外观的月饼,就选用相应的模具一压,再往烤箱里一放,便能得到我们想要...

tzllxya的博客 247

SDIO协议

SDIO协议1 概述  SDIO,全称:Secure Digital Input and Output ,即安全数字输入输出接口。2 特点①与多媒体卡系统规格书版本4.2全兼容。支持三种不同的数据总线模式:1位(默认)、4位和8位。②与较早的多媒体卡系统规格版本全兼容(向前兼容)。③与SD存储卡规格版本2.0全兼容。④与SD I/O卡规格版本2.0全兼容:支持两种不同的数据总线模式:1位(默认)和4

Let the development board fly! 3万+

如何利用VS2017创建一个简单的窗口

#如何利用VS2017创建一个简单的窗口 1、新建->Windows桌面向导 2、应用程序类型->桌面应用程序,点击确定 3、点击调试->开始调试 可建立如下图的窗口 4、可以在生成的项目文件的中找到windows17_2的应用程序,打开界面如下: 注:新建空白项目也可以,注意在解决方案资源器中添加.cpp文件,如源.cpp文件,下载代码见博文 ...

weixin_46894139的博客 2914

第六节:面向对象

一、面向对象 1.1面向对象的概念 面向过程:在整个事情的执行过程中,自己至始至终都是其中的参与者,并且要自己亲力亲为所有的步骤。 面向对象:我们需要完成某个事情,需要具体的一个结果。这时我们不会自己去参与其中,而是找具备这些功能的对象,然后调用它们的功能,帮助我们来完成我们的要求。 面向过程: 吃饭: 先思考吃什么? 买菜 回家洗菜、烧饭 吃饭 洗刷 面向对象: 吃...

long_long_ago1的博客 206

电化学阻抗谱(EIS)在锂离子电池中的应用

摘要电化学阻抗谱(electrochemical impedance spectroscopy, EIS)是一种重要的电化学测试方法,在锂离子电池动力学反应机理研究及动力学参数测量等方面具有广泛的应用。在锂离子电池运行过程中,各反应步骤的动力学参数及时间常数不同,而EIS可以在较宽的频率范围内对体系施加小幅正弦激励信号,使得在特定频率下突出特定时间常数的电极过程,从而将复杂的电极过程分离,实现单一电极过程动力学的分析。通过对交流阻抗信息的研究,也可以为锂离子电池及其他电池的应用与管理、电化学过程设计及电极材

qiushireader的博客 2658

java学多长时间能独立开发项目_Java从零基础到独立编写游戏项目

讲解方式:全程ppt动画趣味授课教学,注重学员体验课程亮点:1、知识体系化,结构化,并讲解详细,各阶段学习者都能有所收获2、课程中期开始,每一个学习的技术点都能应用到游戏的制作中,保证学以致用无知识盲点课程内容:1. 计算机基础知识2. Java背景与环境搭建3. Java基础语法4. 面向对象编程5. 界面编程6. 2048数字游戏7. 石头迷阵游戏适用人群:1、对 IT 行业感兴趣的零基础人群...

weixin_34164146的博客 823

RustFS vs MinIO:深入对比分布式存储的性能、功能与选型指南

RustFS与MinIO是两款热门分布式存储系统,分别针对高性能与通用场景设计。RustFS基于Rust语言,在吞吐量(最高提升46%)、延迟(降低37%)和资源效率(内存占用减少67%)上显著优于MinIO,适合AI训练、金融级应用等高性能需求。MinIO凭借成熟的S3兼容性、云原生集成和企业级功能,更适用于混合云及现有S3生态。许可方面,RustFS采用Apache 2.0,MinIO为AGPLv3。选型建议:优先RustFS应对性能敏感场景,选择MinIO注重生态兼容性,也可考虑混合架构策略。

分布式存储与RustFS的博客 2024

MFC IP Address Control 使用详解:从基础到高级应用

本文详细介绍了MFC中IPAddressControl控件的使用方法,包括基础创建、属性配置、样式自定义和高级功能实现。主要内容涵盖:控件初始化、默认IP设置、外观修改、派生类创建、消息处理、批量管理以及常见问题解决方案。通过示例代码展示了如何验证IP范围、优化性能和处理键盘输入等实用技巧,为开发网络应用程序提供了专业指导。文章还给出了多个备选标题,适合不同层次开发者参考使用。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 160

Java 第六节课 : 函数的用法

3092 字详解 Java 函数

2504_90642080的博客 1470

【WRF-FDDA】观测 Obs nudging 的配置与使用说明(中)

WRF-FDDA

WW、forever的博客 282

Java学习第六节

## Java学习第六节 一.面向对象编程 1.类 类------定义一组对象共同具有的状态和行为的模板 对象------现实世界中个体或事物的抽象表示 类的方法------对象的行为 类成员变量------对象的属性定义 类包括:对象的属性 和 行为,由class关键字声明。 语法:class className{ 成员变量 … 成员方法 … } 2.包:解决重名问题 一个java项目会涉及多个类,类多了,会涉及重名问题,包就是用来解决这个问题的。 包的命名:全部使用小写字母 3.成员变量和成员方法:表示

weixin_44373385的博客 224

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

JAVA面向对象编程

JAVA的背景和历史JAVA的特点和应用领域如何安装和配置JAVA开发环境面向对象编程是一种非常流行的编程范式,Java作为一种面向对象编程语言,也广泛使用这种编程范式。本文详细介绍了Java中的面向对象编程基本概念,包括类和对象、封装、继承和多态等。并举例说明了电子商务系统和游戏开发两个实例。希望本文能够帮助初学者更好地理解和掌握Java中的面向对象编程。类和对象的定义和使用Java是一门面向对象编程语言,类和对象是Java中最基本的概念之一。

Kali与编程 1207

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

从”0“开始学JAVA——第六节 数组

这一节我们要学习的是一个全新的东西——数组,什么是数组呢?数组就是一组数据,数组由0个,1个或多个元素组成,定义数组的时候和定义变量时一样,要规定数据类型。当然,可以是基本数据类型,也可以是引用数据类型。接下来我们逐步学习数组:数组是一个固定长度的,包含了相同数据类型的容器。

m0_74754754的博客 1164

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

16秋计算机JAVA第六节课作业

1 2 3

Z972792019的博客 394

初始Java 来自Java SE的第六节课 类和对象

目录 类和对象 1. 类与对象的初步认知 【面向对象概念】 【面向对象设计】 2. 类和类的实例化 3. 类的成员 3.1 字段/属性/成员变量 3.2 方法 (method) 3.3 static 关键字 注意事项 引用相关注意事项: 4. 封装 4.1 private实现封装 4.2 getter和setter方法 5. 构造方法 5.1 基本语法 面试相关问题: 6. 认识代码块 6.1 构造代码块 和 静态代码块 7. toString方法 8....

wwzzzzzzzzzzzzz的博客 717

Java基础第六节-面向对象

面向对象 Java中的变量有两种 1、基本数据类型 2、引用类型 基本数据类型和引用类型的区别? 基本数据类型的类型范围是固定的,8种 引用类型的类型不是固定的,可以有无限种可能(JDK,框架,开发者自定义) 基本数据类型只需要用到栈内存,不需要用到堆内存,具体的数值直接存储在栈内存中。 引用类型同时用到栈内存和堆内存,真正的对象数据存储在堆中,堆的内存地址存入到栈中,栈中是通过引用的方式指向堆中真正的数据。 引用类型的数据都是对象,基本数据类型的数据不是对象。 类和对象的关系 每个对象都应该有自己的特

村口王大爷的博客 141

2021Java入门教程,Java从零基础到独立编写游戏项目

随着互联网技术的高速发展,Java作为目前市场应用最广泛的一门编程语言,市场需求大,可选择岗位种类多,使得越来越多的人选择学习Java编程知识,成为Java程序员。 但是,对于零基础的同学来说,由于Java语言自身的抽象程度比较高,在理解很多概念的时候很难建立起画面感,加上缺少编程思维,导致许多初学者,觉得学习Java编程很难。 如果你也想学Java编程开发,还在担心难度大?枯燥?无趣?掉头发?不不不!播妞认为你只是没有遇见,一套足以提起你兴趣的视频教程。 带你快速掌握 Java 2021年黑马程

qq_41293655的博客 359

Java—零基础学员学习任务总结

本文是帮助初学者从开始学习到入门的一种方法

zf888999666的博客 185

【我要学python】面向对象系统学习

第一节:初识类的定义和调用 c1.py #类 = 面向对象 #类 最基本作用:封装 #类中不仅可以定义变量 还可以定义函数等等,例: 1 class student( ): 2 name = ' ' 3 age = 0 4 5 def print_file(): 6 pass #类的实例化 1 s = student...

weixin_34138377的博客 125

Java基础学习第六节——面向对象,static关键字,包的使用

面向对象概念 1 课程介绍 1.了解什么是面向对象(了解) 2.理解什么是类与对象(掌握) 3.类的设计(掌握) 4.对象的创建与赋值(掌握) instance (实例)对象 构造方法(构造器-构造函数 )(掌握) static 修饰符 包(理解概念和作用) 2 初识面向对象 我们所说的面向对象是一种编程思想,什么是编程思想呢?让你如何去设计程序,同时也...

WC名字好难取的博客 447

spring boot 第六节 注解版

spring boot 第五节 xml版 各种报错解决 IDEA org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 参考文章:https://blog.youkuaiyun.com/qq_37746483/article/details/82877323 mapper的xml 文件与接口没有放...

bluewelkin的专栏 158

黑马程序员java学习第六节

黑马程序员JAVA学习第五节 (视频链接黑马程序员全套Java教程_Java基础入门教程,零基础小白自学Java必备教程_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili) 本节主要内容是Collection集合,List 集合,数据结构补充知识,Set集合,泛型,对应视频257-. Map 集合 1.Map 集合概述 interface Map<K,V> K:键的类型;V:值的类型 2.Map 集合的特点 1)键值对映射关系 2)一个键对应一个值 ...

weixin_51181574的博客 410

第六节 Java 基础语法

第六节 Java 基础语法

2301_78772942的博客 919
上一篇: 零基础学Java第五节(面向对象一)
下一篇: 零基础学Java第七节(面向对象三)
Code_ForYou
博客等级 码龄5年 0粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值