Java的面向对象基础(没写完)

P4VASP的安装 & 使用P4VASP画DOS(态密度)图 P4vasp 下载: 链接:https://pan.baidu.com/s/1JIptQVSFSopQls9CiSIoVA 提取码:sbhi 由于是免安装版本,直接右击解压即可,将出现以下文件: 双击既可运行P4vasp: 关于P4vasp的基本使用(使用P4vasp画DOS) 这里以vasp计算为例 首先导出DOS计算的文件夹中的vasprun.xml文件 从p4vasp导入该文件进行作图(直接将vasprun.xml拖入p4vasp一般不会有反应) 具体步骤: 点击open: 在弹出的弹窗 阅读详情

面向对象的三个基础特性:封装性、继承性、多态性。

Java语言中一个类的实现包括类声明和类体。

类声明语法格式如下:

[public] [abstract|final] class className [extends superclassName] [implements interfaceNameList] {

    //类型
}

class是声明类的关键字,className是自定义的类名,class前面的修饰符public、abstract、final用来声明类,它们可以省略。

superclassName为父类点,可以省略,如果省略,则该类继承Object类,Object类为所有类的根类,所有类都直接或间接继承Object;interfaceNameList是该类实现的接口列表,可以省略,接口列表中的多个接口之间用逗号分隔。

在语法说明中,括号([])表示可以省略;竖线(|)表示“或关系”,但是不能同时出现。

声明动物(Aminal)类代码如下:

//Animal.java
public class Animal extends Object {
    //类体
}

上述代码声明了动物(Animal)类,它继承了Object类。继承Object类extends object代码可以省略。

声明类体中成员变量语法格式如下:

class className{

    [public|protected|private] [static] [final] type variableName; //成员变量

}

type是成员变量数据类型,variableName是成员变量名。type前的关键字都是成员变量修饰符,说明如下:

1、public、protected和private修饰符用于封装成员变量。

2、static修饰符用于声明静态变量,所以静态变量也称为“类变量”。

3、final修饰符用于声明变量,该变量不能被修改。

一个声明成员变量示例如下:

//Animal.java
public class Animal extends Object {
    //动物年龄
    int age=1;
    //动物性别
    public boolean sex=false;
    //动物体重
    private double weight=0.0;
}

声明类似中成员方法语法格式如下:

class class{
    [public|protected|private] [static] [final|abstract] [native] [synchronized] type methodName ([paramList]) [throws exceptionList] {
        //方法体
    }
}

type是方法返回值数据类型,methodName是方法名。type前的关键字都是方法修饰符,说明如下:

1、public、protected和private修饰符用于封装方法。

2、static修饰符用于声明静态方法,所有静态方法也称为“类方法”。

3、final|abstract不能同时修饰方法,final修饰的方法不能在子类中补覆盖;abstract用来修饰抽象方法,抽象方法必须在子类中被实现。

4、native修饰的方法,称为“本地方法”,本地方法调用平台本地代码,不能实现跨平台。

5、synchronized修饰的方法是同步的,当多线程方式同步方法时,只能串行地执行,保证线程是安全的。

方法声明中还有([paramList])部分,它是方法的参数列表。throws exceptionList是声明抛出异常列表。

声明方法示例:

public class Animal {//extends Object {
    //动物年龄
    int age=1;
    //动物性别
    public boolean sex=false;
    //动物体重
    private double weight=0.0;
    public void eat() {
        //方法体
        return;
    }
    int run() {
        //方法体
        return 10;
    }
    protected int getMaxNumber(int number1, int number2){
        //方法体
        if(number 1>number 2){
            return number1;
        }
        return number2;
    }
}

定义包语法格式如下:

package pkg1[.pkg2[.pkg3...]];

package语句应该放在源文件的第一行,在每个源文件中只能有一个包定义语句,并且package语句适用于所有类型(类、接口、枚举和注释)的文件。

如果在源文件中没有定义包,那么类、接口、枚举和注释类型文件将会被放进一个无名的包时,也称为默认包。

包引入的语法格式如下:

import package1[.package2...](类型名|*);

“包名.类型名”形式只引入具体类型,“包名.*”采用通配符,表示引入这个包下所有的类型。但从编程规范的角度提倡明确引入类型名,即“包名.类型名”形式可以提高程序的可读性。

Java SE的常用包有java.lang、java.io、java.net、java.util、java.text、java.awt和javax.swing。

方法重载示例MethodOverloading.java代码如下 :

package helloworld;

class MethodOverloading{
	void receive(int i) {
		System.out.println("接受一个int参数");
		System.out.printf("i = "+i);
	}
	void receive(int x, int y) {
		System.out.println("接收两个int参数");
		System.out.printf("x = %d, y= %d \r",x,y);
	}
	int receive(double x, double y) {
		System.out.println("接受两个double参数");
		System.out.printf("x= %f, y=%f \r", x,y);
		return 0;
	}
}

public class helloworld {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MethodOverloading mo= new MethodOverloading();
		//调用void receive(int i)
		mo.receive(1);
		//调用void receive(int x, int y)
		mo.receive(2,3);
		//调用void receive(double x, double y)
		mo.receive(2.0,3.3);		
	}

}

运行结果如下:

接受一个int参数
i = 1接收两个int参数
x = 2, y= 3 
接受两个double参数
x= 2.000000, y=3.300000 

Java面向对象的封装性是通过对成员变量和方法进行访问控制实现的,访问控制分为4个等级:私有、默认、保护和公有。

Java类成员的访问控制
控制等级同一个类同一个包不同包的子类不同包非子类
私有Yes
默认YesYes
保护YesYesYes
公有YesYesYesYes

私有级别

私有级别的关键字是private,私有级别的成员变量和方法只能在其所在类的内部自由使用,在其他的类中则不允许直接访问。私有级别限制性最高。

默认级别

默认级别没有关键字,也就是没有访问修饰符,默认级别的成员变量和方法,可以在其所在类内部和同一个包的其他类中被直接访问,但在不同包的类中则不允许直接访问。

DefaultClass.java文件,代码如下:

public class DefaultClass {
    int x;
    public DefaultClass(){
        x=100;
    }
    void printX(){
        System.out.println("Value of x is"+x);
    }
}

HelloWorld.java文件,代码如下:

public class HelloWorld {
    public static void main(String[] args){
        DefaultClass p;
        p=new DefaultClass();
        p.printX();
    }
}

运行结果如下:

错误: 找不到或无法加载主类 HelloWorld
原因: java.lang.ClassNotFoundException: HelloWorld

不知道怎么解决。 很头疼。后来想起来了办法,在同一个文件夹,在这个文件夹必须是HelloWorld,才能运行成功。运行结果如下:

Value of x is 100

保护级别

保护级别的关键字是protected,保护级别在同一包中完全与默认访问级别一样,但是不同包中子类能够继承父类中的protected变量和方法,这就是所谓的保护级别,“保护”就是保护某个类的子类都能继承该类的变量和方法。

ProtectedClass.java文件,代码如下:

public class ProtectedClass {
    protected int x;
    public ProtectedClass(){
        x=100;
    }
    protected void printX(){
        System.out.println("Value Of x is "+x);
    }
}

HelloWorld.java文件,代码如下:

public class HelloWorld {
    public static void main(String[] args){
        ProtectedClass p;
        p=new ProtectedClass();
        p.printX();
    }
}

运行结果如下:

HelloWorld.java:3: 错误: 无法访问ProtectedClass
        ProtectedClass p;
        ^
  错误的源文件: ./ProtectedClass.java
    文件不包含类ProtectedClass
    请删除该文件或确保该文件位于正确的源路径子目录中。

 代码错误,很头疼。不知道怎么解决。第122页。

公有级别

公有级别的关键字是public,公有级别的成员变量和方法可以在任何场合被直接访问,是最宽松的一种访问控制等级。

PublicClass.java文件,代码如下:

public class PublicClass {
    public int x;
    public PublicClass(){
        x=100;
    }
    public void printX(){
        System.out.println("Value Of x is "+x);
    }
}

HelloWorld.java文件,代码如下:

public class HelloWorld {
    public static void main(String[] args){
        PublicClass p;
        p=new PublicClass();
        p.printX();
    }
}

运行结果如下:

Value Of x is 100

静态变量和静态方法

静态代码块

第125页。

vcenter server6.0上vmware inventory 、virtualvcenter等服务无法开启 描述:一天,vcenter访问不了,因此Windows远程到vcenter server上。相关服务未开启,开启virtualCenter server服务提示相关依赖服务未开启,于是开启依赖项服务Inventory服务报错。然后打算使用 C:\Program Files\VMware\vCenter Server\bin\servcivce-control来开启vmware服务 1.... 阅读详情

相关推荐

SpringBoot项目整合达梦数据库(MYSQL 转换 达梦数据库)

注意:当迁移过程中出现下面问题时,如有触发器或者外键,需要先关掉触发器和外键,然后进行迁移,不然会导致迁移失败。(2)dm.ini修改【#compatibility】的【COMPATIBLE_MODE】=4。3、添加用户:如果导入的DM数据库需要和MYSQL的用户一样,添加ROOT用户。方法一:服务器配置:设置系统兼容性(DM控制台工具),兼容MySQL。服务器配置又该有两种方式:①DM控制台工具修改;MYSQL的数据表转换成DM的数据表时,点击转换按钮。在这里操作:MYSQL数据库迁移至DM数据库。

m0_74824635的博客 2013

java 所谓的值传递和引用传递

最近学校课程java上了一半,我发现我一直都不太懂值传递,引用传递什么的,这次一定要弄懂 先从最开始谈吧 一、什么叫做值传递与引用传递 实参与形参     - 存储单元(左值)     - 存储内容(右值) 根据所传递的实参的“内容”,参数传递可分为:     - 传值调用:传递实参的右值到形参单元;     - 引用调用:传递实参的左值到形参单元;     - 值-

rachel_2016的博客 437

蓝牙HCI Dongle实战:从芯片选型到协议栈集成的完整指南

本文详细介绍了蓝牙HCI Dongle的实战应用,从芯片选型到协议栈集成的完整指南。通过对比CSR8510、nRF52840等主流芯片的性能和价格,提供选型建议和避坑技巧。同时,深入解析Zephyr协议栈移植和常见问题排查,帮助开发者高效完成蓝牙项目开发。

weixin_30786657的博客 322

最全的Java笔试题库之选择题篇-总共234道【1~60】

1.下面中哪两个可以在A的子类中使用:( ) class A { protected int method1 (int a, int b) { return 0; } } A. public int method 1 (int a, int b) { return 0; } B. private int method1 (int a, int b) { r

qq_36075612的博客 2万+

Fluent实战——残差震荡分析与收敛优化策略

本文深入探讨了Fluent仿真中残差震荡的成因与优化策略。残差震荡是流场物理或数值问题的关键信号,文章系统分析了网格质量、边界条件、物理模型非定常性及求解设置四大主因,并提供了库朗数与松弛因子的调参心法,以及针对超音速流、共轭传热等典型场景的实战优化方案,旨在帮助用户有效提升计算收敛性与结果可靠性。

w1x2y3的博客 313

一、5.8GHz射频接收机链路仿真

5.8GHz射频接收机链路仿真 一、5.8GHz射频接收机链路仿真 文章目录5.8GHz射频接收机链路仿真目的一、原理1、仿真工具2、二次下变频超外超接收机二、要求三、内容总结 目的   1、熟悉射频接收机整体结构。   2、学习使用MATLAB工具进行行为级仿真。   3、进行简单的通信链路预算。   4、直观感受接收机各个模块对整体性能的影响。   5、分析增益、线性度、噪声系数等参数。 一、原理 1、仿真工具   MATLAB是一款功能强大的数学软件,针对不同领域提供各种工具箱,帮助设计者快

平乾的博客 6760

Java面向对象基础

一、前言 我们上次学过java的方法,现在我们来学习新的一篇,也算是java中比较重要的一节了 面向对象基础是java中核心。 面向对象主要包括封装、继承、多态 我们这节主要讲的是封装,在这之前我们先来了解一下类和对象的定义和关系 什么是对象? 世间一切都是对象,万物解释对象,对象就是看得见摸得着的东西。 什么是类? 类是现实生活中对具有属性和行为同一类的总称。 类和对象的关系? 类是对象的抽象化,对象是类的实例化 类的定义 ? 类是java中的基本概念,java中

weixin_60719453的博客 9327

一文吃透 SAP HANA Service Broker:原理、架构与落地实践

摘要:SAP HANA Service Broker 作为云原生开发的关键组件,通过标准化流程管理 HDI 容器与服务实例的生命周期,实现数据库资源的自动化配置与安全隔离。它采用服务目录、服务计划和绑定机制,将连接凭据注入应用环境变量,避免硬编码风险。在实际应用中,需根据模块生命周期决定共享或隔离容器,并通过跨容器访问模式实现安全数据共享。典型案例展示了电商平台的多模块协同与SaaS租户隔离场景,验证了其在提升运维效率与安全合规方面的价值。最佳实践强调以生命周期划边界、最小权限原则和HTTPS安全传输,为企

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 225

java基础-面向对象

java基础部分-面向对象的概念,类之间关系,并部分解释了UML类图

codeglory的博客 6608

〔重庆理工大学〕大学物理实验--变温霍耳效应及其参数测定

每个老师要求不同,实验报告内容和数据仅供参考。

Pretty Boy Fox的博客 3044

完整 Bootloader 框架

本文详细介绍了嵌入式系统中Bootloader的完整框架设计。主要内容包括:1.Bootloader的核心功能模块,如应用启动、命令交互、下载功能、Flash烧写和调试维护;2.模块化设计框架,包含启动代码、驱动层、协议实现等组件;3.典型工作流程和关键模块实现,如命令行接口、命令注册机制、Flash操作等;4.应用跳转前的准备工作和安全扩展设计,如加密校验、OTA支持等。文章强调了一个成熟Bootloader在系统维护、升级和安全中的重要性,建议采用模块化、可扩展的设计方法。

m0_49476241的博客 1337

【JAVA基础】面向对象基础(上)

public class 类名 {1、成员变量(代表属性,一般是名词)2、成员方法(代表行为,一般是动词)3、构造器 (后面学习)4、代码块 (后面学习)5、内部类 (后面学习)}

Javascript_tsj的博客 1312

C#面试题及详细答案120道(61-75)-- 多线程与异步

本文摘要了前后端面试题中关于线程与并发的核心知识点,包括线程与进程的区别(61题)、Thread/ThreadPool/Task的对比(62题)、线程安全实现方法(63题)、lock关键字的原理(64题)、Monitor类的进阶用法(65题)以及死锁的成因与避免(66题)。通过C#代码示例和表格对比,清晰展示了多线程编程的关键概念、应用场景及常见问题解决方案,适合开发者快速掌握面试高频考点。完整内容可访问专栏目录获取更多技术面试题解析。

大剑师兰特的GIS世界 1429

Java基础篇面向对象总结

"理解万事万物皆对象" 基本类型和引用类型 匿名对象的使用 方法重载loading.... 方法重写 方法重载与方法重写的区别: 可变个数的形参 递归地使用 封装和隐藏 四种权限修饰符 继承 多态 属性 方法 构造器 代码块 内部类(了解) this关键字 package关键字 import关键字 super关键字 instanceof关键字 static关键字 abstract关键字 Interface关键字 equals() toString()方法 单例模式

weixin_44606952的博客 5232

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java基础语法到面向对象详解

本文是一篇Java入门学习笔记,从java基础语法过度到面向对象三大特性等进阶详解

冬眠猫的博客 7946

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java面向对象基础

首先每一部电影,都包含这部电影的相关信息,比如:电影的编号(id)、电影的名称(name)、电影的价格(price)、电影的分数(score)、电影的导演(director)、电影的主演(actor)、电影的简介(info)。为了去描述每一部电影,有哪些信息,我们可以设计一个电影类(Movie),电影类仅仅只是为了封装电影的信息,所以按照JavaBean类的标准写法来写就行。

是程序喵呀 1847

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java基础与面向对象

Java基础和面向对象基础

qq_74078496的博客 1169

JAVA基础之面向对象

面向过程POP(ProcedureOrientedProgramming),是一种基本的编程思想,在面对一个需要解决的问题时,将问题按流程逐步实现,注重执行的细节。用于修饰类和方法,表示抽象的。修饰方法,该方法称为抽象方法,没有方法体,同时该方法所在类一定也要使用abstract修饰成为抽象类。抽象方法只能出现在抽象类中,不能出现在普通类中。抽象类中可以没有抽象方法抽象类中有构造方法,但该构造方法不能使用new调用,所以抽象类不能创建对象抽象类中的构造方法,在创建其子类对象时自动调用。...

Yc_Lq的博客 856

java——面向对象基础

是一种具体步骤的操作,他是微观的。适合解决简单问题,先分析出解决问题的步 骤,然后一步一步的(用函数)去实现即可。c语言就是一个典型的面向过程的语言。结构简单,修改复杂。(程序设计越来越复杂,单纯的面向过程就难以胜任设计程序的需求,现在大多数的语言都是面向对象,c++,C#,java,python....面向对象:是指宏观上分析程序有哪些功能,然后对功能进行分类,把不同的功能封装在不同的类中。他是一种宏观的设计。代码结构:以类为组织单位。每种事物都具备自己的属性和行为/功能。类:具有。

Wooo_e的博客 2034

Java 面向对象基础

构造器是一种特殊的方法,但这个方法没有返回值类型,并且方法名必须和类名相同。System.out.prinln("这是一个无参数构造器");System.out.println("这是一个有参数构造器");封装就是用类设计对象处理某一个事物的数据时,把要处理的数据,以及处理数据的方法,都设计到一个对象中去。不恰当的说,就是自己的问题自己解决。比如:在设计学生类时,我们把学生的各种信息以及需要用到的方法都封装到一个类中。System.out.println("及格了");else{

qq_67140973的博客 1084

java基础学习总结——面向对象

目录 一、面向过程的思想和面向对象的思想 二、简单理解面向对象 三、面向对象的设计思想 四、对象和类的概念 五、如何抽象出一个类? 六、类(对象)之间的关系 七、Java与面向对象 八、为什么使用面向对象编程?   一、面向过程的思想和面向对象的思想        面向对象和面向过程的思想有着本质上的区别, 作为面向对象的思维来说,当你拿到一个问题时,你分析这个问题不

hello_zhou的博客 3904

【Java】Java基础+面向对象

复习

Answer的博客 767

java面向对象的基础

结构化程序设计,也叫面向过程程序设计 ,是一种编程思想,核心是将问题分解成一个个步骤,然后用函数来实现这些步骤,最终通过依次调用函数来解决问题。其设计思想可概括为:自顶而下,逐步精分,模块化。面向对象(Object Oriented)是一种更加优秀的程序设计方法。它由面向对象分析(OOA),面向对象设计(OOD),面向对象编程(OOP)三部分组成。它的核心是将现实世界中的事物抽象为程序中的“对象”,并以对象为中心,使用类,对象,继承,封装,消息等进行程序设计。更贴近人类对现实世界的认知方式。

m0_74837480的博客 966

Java实验三 Java面向对象基础

实验三 Java面向对象基础 一、实验目的与要求 1、掌握面向对象的基本概念,掌握类定义的方法、对象的创建、访问; 2、熟练掌握、深刻理解构造方法的概念、含义、作用、调用时机等; 3、掌握几个关键字的特征及用法:static、this; 4、深刻理解和掌握方法重载; 5、了解类的权限、成员的权限。 二、实验原理 1.如何定义类,类的基本构成; 用class关键字定义一个类...

九九小白菜的博客 3339
上一篇: Java的字符串
下一篇: 在Mac OS系统下安装Java
DXB2021
博客等级 码龄5年 307粉丝 289原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值