零基础学Java第七节(面向对象三)

分子对接中的相互作用特征分析(目视筛查) 介绍分子对接的相互作用特征,以及如何通过这些特征进行目视筛查 阅读详情

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

包

包是java中对类的组织管理形式。java中的所有的资源也是以文件方式组织,这其中主要包含大量的类文件需要组织管理。java中同样采用了目录树形结构。虽然各种常见操作系统平台对文件的管理都是以目录树的形式的组织,但是它们对目录的分隔表达方式不同,为了区别于各种平台,java中采用了"."来分隔目录。

包机制也解决了类名冲突问题,一个包就是一组相关的类和接口,同一包中不能有同名的类或接口。

包同时也实现对类及其成员的保护。一个.java文件通常称为一个compilation unit。每个源文件中可以有若干个类,但最多只有一个类前可有 public 修饰,该类的名字和文件名同名,这种类在包外是可见的,能被调用。其它非public的类在包外不可见,这些类为public 类的支持类。

当编译一个 .java 文件时,该文件中每一个类都会生成对应的,类名和文件名同名的,后缀为.class的文件。

在文件系统的存储上,一个包对应一个文件夹,包中还可以有子包,子包对应子文件夹,包中的类对应文件系统中的.class文件。

classpath

Java中的资源存在于不同平台下时,它们的存放方式及位置必然会有很大差异。因此跨平台的java包结构和平台之间必须通过一种方式来衔接到一起。这个衔接方式是通过classpath实现。classpath针对java类的存放位置,告诉java虚拟机(jvm)要使用或执行的*.class文件放在什么地方。如同windows中的path的作用。
在jdk6中,系统类的位置不需要设置classpath,但是如果需要指定用户定义类的位置,则需要设置classpath了,同时用户设置的位置不会影响系统查找系统类。

比如在c盘建立一个目录java,将某个类,比如test.class放在该目录下,然后转到其它目录下,再执行java test,会发现找不到该类,这时可以将classpath设置为c:\java;,再执行java test,会发现可以运行了,如果在当前目录下再放一个和test同名但功能不同的类文件,再执行java test,看看到底执行的哪个test呢?

包的声明与编译

声明包的格式如下:

package 包名;

该语句必须放在java源文件中的第一行,且最多只能有一条。子包和父包之间通过.连接。该语句指定本源程序编译生成的所有类的存放位置,既是所处的包。

编译方式:

带有package语句的java源文件必须这样编译:

javac -d 生成路径 java源文件存放位置路径

该命令会自动在“生成路径”所指定的位置,生成package所指定包层次对应的文件夹结构。

如下程序示例:

package edu.henu.rjxy.wht;

public class test{
	public static void main(String[] args) {
		System.out.println("中 国");
	}
}
import edu.henu.rjxy.wht.test;

public class t1{
	public static void main(String[] args) {
		test.main(args);
         //edu.henu.rjxy.wht.test.main(args);
	}
}

import的使用

加包名使用类很不方便,于是引入import语句,它的格式如下:

import 包名.类名;
import 包名.*;

import 告诉编译器引入一个包(package),包是类的集合。
当使用标准Java库中的组件时,可以这样:

import java.util.Scanner;

这告诉编译器要使用Java的 Scanner
可是 util 中有很多类,要使用它们没必要一一列举出来,可以使用通配符:

import java.util.*;

另外,java.lang包中的类不需使用import来引入。

import static

用于引入某个类的静态成员,缺点在于如引入的多个类中有同名的静态成员就会出错,如下:

import static java.lang.Math.*;

异常

异常指程序运行时出现的非正常现象,对异常的处理通常有两种方法:

  • 系统检测到程序的错误,给出错误信息并终止程序的运行
  • 在程序中加入处理异常的功能

异常类的继承简略图如下:

类 Throwable是 Java 语言中所有错误或异常的父类。

在Java中,将异常情况分为Exception和Error两大类,因此有两种Throwable对象

  • Exception解决程序及环境产生的异常,可由程序捕获并处理
  • Error处理较少发生的内部系统错误,不能被程序捕获,只能由用户按照系统提示关闭程序。

异常类的名字就代表了可能发生的异常的含义。该异常类的对象代表真正所发生的异常,但注意它不是异常本身。

异常并不都是在 java.lang 包中定义,其它如util, net, 及io中均有定义。所有的 I/O 异常都继承自java.io.IOException。

那些在编译时能被检查的异常称为checked exceptions,其他为unchecked exceptions。unchecked exceptions 类有两种:RuntimeException及它的子类、 Error及它的子类 ,其它的异常类均为checked exception类。

异常对象的产生

异常对象代表所发生的异常,但不是异常本身。异常对象可能由系统被动产生,也可以由程序主动产生。

在Java语言中,异常机制是:一旦出现异常,可以由运行的方法(主动)或JVM(被动)生成一个异常对象,它代表该异常事件的类型。异常对象从产生和被传递提交给Java运行系统的过程称为抛出异常(throw)。你可以抛出任何类型的异常。

比如引用 t,在使用t之前,我们应该检查t是否真正地引用某个实例,如下:

if(t == null)
throw new NullPointerException();//程序产生

JDK中所有异常类的构造方法有两类,一类是缺省构造方法,一类是带有字符串参数的构造方法:
throw new NullPointerException("t = null");
throw 把new所产生的引用抛出,由catch捕获,进行处理。

当发生异常时,会有下面的过程:首先,创建(系统或程序)异常对象代表异常,然后当前的执行流程中断,异常处理机制接管并且寻找合适的代码以继续执行程序,这段代码就是exception handler。这如同生产线上,当某个产品被发现有某种缺陷时,会被质检员贴上某种描述该缺陷的标签(这个标签类比为异常对象),然后撤出该产品并根据标签的类别,该产品会被发送到不同的部门进行相应的处理(相当于是exception handler)。

异常的处理

try…catch语句

语句格式为:

try {
// The guarded region: Dangerous activities
// that might throw A, B, or C
} catch(A a1) {
// Handler for situation A
} catch(B b1) {
// Handler for situation B
} catch(C c1) {
// Handler for situation C
} finally {
// Activities that happen every time
}

每个catch语句就像一个小的方法,它接受一个参数,而且只能是一个参数,就像方法的参数。该参数的类型已经给出了处理异常的足够信息。如果抛出了一个异常,异常处理机制就在catch中依次寻找,就近匹配,子类异常会匹配父类异常,直到找到匹配的异常为止,然后进入该catch语句中。

注意,在try中可能有很多语句会产生相同的异常,但是在对应的catch只需要一个。

有时候,不管try中有没有异常的发生都要执行一些特定的语句,那么这些语句可以放在finally语句中。所以通常在程序中为了保证某资源一定会释放,通常把释放资源的语句放在finally语句块中。

在finally语句块中的代码通常是一定会执行的。但是在执行finally语句块之前退出了JVM,则finally语句块不会执行。

try{
	//退出JVM
	System.exit(0);
}finally{
	//不会执行.
	System.out.println("finally....");
}

示例:

import java.io.*;
public class testE extends Exception{
	static void f1() throws testE{
		try{
			throw new testE();
		}catch (ArrayIndexOutOfBoundsException e){
		  System.out.println("from f1");
		}
	}
	public static void main(String[] args){
		try{
			f1();
		}
		catch(testE e){
			System.out.println("from main.");
		}
	}
}
异常表

在方法内部如果产生异常但没有处理,则需要抛出该方法体,该方法需要使用异常表。异常表指定某个方法可能抛出的异常的种类。使用方法如下:

void f() throws TooBig, TooSmall, DivZero { //...

下例

void f() { // ...

意味着该方法不会抛出任何异常 (除了RuntimeException异常或那些继承自它的异常),方法可能产生的所有异常,异常表中都应列出(除了RuntimeException异常或那些继承自它的异常),但异常表中的出现的异常,方法在实际执行中可以没有发生。

下例:

//编译无法通过. 
//IOException没有处理

public static void main(String[] args) throws FileNotFoundException{
		
	FileInputStream fis = new FileInputStream("abc");
	fis.read();
		
}

所有RuntimeException类及其子类的异常系统均可以自动处理,同时RuntimeException 异常及子类异常无需出现在异常表中,而且这种异常既可以通过catch捕获,也可以不处理。**记住:**你只能忽略RuntimeException (或它的子类).

public class NeverCaught {
	static void f() {
		throw new RuntimeException("From f()");
	}
	static void g() {
		f();
	}
	public static void main(String[] args) {
		g();
	}
}

自定义异常类

JDK异常没有包括所有可能的异常情况,所以你可以写出自己定义的异常类来。为创建自己的异常,你应该继承一个在意义上和该异常相似的异常类。

例如:

class SimpleException extends Exception {}
	public class SimpleExceptionDemo {
	public void f() throws SimpleException {
 		System.out.println("Throw SimpleException from f()");
 		throw new SimpleException();
	}
	public static void main(String[] args) {
		SimpleExceptionDemo sed = new SimpleExceptionDemo();
		try {
			sed.f();
		} catch(SimpleException e) {
			System.err.println("Caught it!");
		}
	}
}

又例如:

class MyException extends Exception {
    public MyException() {}
    public MyException(String msg) { super(msg); }
}

public class FullConstructors {
    public static void f() throws MyException {
      	System.out.println("Throwing MyException from f()");
      	throw new MyException();
  	}

    public static void g() throws MyException {
      	System.out.println("Throwing MyException from g()");
      	throw new MyException("Originated in g()");
  	}

    public static void main(String[] args) {
      	try {
        	f();
      	} catch(MyException e) {
        	System.out.println(e);
      	}
      	try {
       		g();
      	} catch(MyException e) {
        	System.out.println(e);
      	}
    }
}

//: ExtraFeatures.java
// Further embellishment of exception classes.
class MyException2 extends Exception {
  private int x;
  public MyException2() {}
  public MyException2(String msg) { super(msg); }
  public MyException2(String msg, int x) {
    super(msg);
    this.x = x;
  }
  public int val() { return x; }

}
public class ExtraFeatures {
  	public static void f() throws MyException2 {
    	System.out.println("Throwing MyException2 from f()");
    	throw new MyException2();
  	}

  	public static void g() throws MyException2 {
    	System.out.println("Throwing MyException2 from g()");
    	throw new MyException2("Originated in g()");
  	}

  	public static void h() throws MyException2 {
    	System.out.println("Throwing MyException2 from h()");
    	throw new MyException2("Originated in h()", 47);
  	}

  	public static void main(String[] args) {
    	try {
      		f();
    	} catch(MyException2 e) {
      		e.printStackTrace();
   	 	}

    	try {
      		g();
    	} catch(MyException2 e) {
      		e.printStackTrace();
    	}

    	try {
      		h();
    	} catch(MyException2 e) {
      		e.printStackTrace();
      		System.err.println("e.val() = " + e.val());
    	}
  	}
}

如果需要捕获任意异常,代码如下:

catch(Exception e) {
	System.err.println("Caught an exception");
}

上面的语句应该放在异常处理语句的最后。

一些例子:

public class ExceptionTest09{
	
	public static void main(String[] args){
		
		int i = m1();
		System.out.println(i); //10
		
	}
	
	
	public static int m1(){
		
		int i = 10;
		try{
			return i;
		}finally{
			i++;
			System.out.println("m1的i=" + i); //11
		}
		
	}
}

/*
	重写的方法不能比被重写的方法抛出更宽泛的异常.
*/
import java.io.*;
/*
class A{
	public void m1(){}
}
class B extends A{
	//子类永远无法抛出比父类更多的异常.
	public void m1() throws Exception{}
}
*/
class A{
	//public void m1() throws FileNotFoundException{}
	public void m1() throws IOException{}
}
class B extends A{
	//public void m1() throws IOException{}
	public void m1() throws FileNotFoundException{}
}
YOLO系列算法改进 | C2PSA改进篇 | 融合FSD频域结构解耦模块 | 双域解耦感知,兼顾全局亮度与局部纹理,适应红外小目标与边缘部署场景 | ICME 2026 YOLO系列算法改进 | C2PSA改进篇 | 融合FSD频域结构解耦模块 | 双域解耦感知,兼顾全局亮度与局部纹理,适应红外小目标与边缘部署场景 | ICME 2026 (以YOLO26最新目标检测模型为基础,利用C2PSA_FSD创新模块进行改进) 阅读详情

相关推荐

保姆级教程:用GROMACS的FEP方法计算小分子结合自由能(附完整mdp配置)

本文提供了一份详细的GROMACS自由能微扰(FEP)计算教程,涵盖从系统准备、参数配置到结果分析的全流程。通过具体案例演示如何计算小分子结合自由能,包括λ窗口设计、动力学参数优化及并行化执行技巧,帮助研究者克服FEP计算中的常见问题,获得可靠的自由能数据。

weixin_30598225的博客 354

零基础入门学习java第七节:Java输入与输出

零基础入门学习java第七节:Java输入与输出 本篇主要介绍Java的输入与输出,当然,这里说的是控制台下的输入与输出,窗口程序的设计将会再后续篇章中有详细说明。 Java的输出很简单,调用System.out.println()即可打印输出你想要输出的内容。我们之前也已经看到过。调用println()方法时,会自动在后面加上换行符,如果不希望它加换行符的话,就要使用print()方法...

tzllxya的博客 419

GROMACS+PLUMED联合安装避坑指南:为什么你的plumed patch总是失败?

本文深入解析GROMACS与PLUMED联合安装中补丁失败的常见原因,并提供详细的避坑指南。针对版本兼容性、环境配置和编译选项等关键问题,给出从源码选择、环境搭建到手动合并补丁的完整解决方案,帮助用户成功整合这两个强大的分子动力学工具,实现增强采样模拟。

weixin_29302047的博客 290

从”0“开始学JAVA ——第七节上 类和对象

先来公布上一节的练习题答案:你写对了吗?这一节我们要讲的是——类和对象,前面几节的知识几乎没有涉及到”面向对象“这个思想,从这一节开始,面向对象的思想将越来越占据主导地位。这也证明基础篇已经结束,难度随之提升。要想学习类的知识。

m0_74754754的博客 765

生物信息学新手必看:MAFFT多序列比对从安装到实战(附参数优化技巧)

本文为生物信息学新手提供了MAFFT多序列比对工具的完整指南。从Linux环境下的安装部署,到核心算法策略(如FFT-NS-i、L-INS-i)的选择逻辑,再到空位罚分等关键参数的深度解析与优化技巧,手把手教你完成从原始序列到高质量比对结果的实战流程,为后续进化树构建等分析奠定坚实基础。

weixin_29230773的博客 488

【滚雪球学数学建模】第4.1节·概率与统计建模,一文搞懂!

🎓 本文收录于 《滚雪球学数学建模》专栏,本专栏专注于从零基础出发,带你循序渐进掌握数学建模的核心方法与思维路径。通过“滚雪球式”学习法,从最简单的生活化案例到经典建模工具,再到省赛、国赛真题实战演练,逐步积累知识与技能,帮助你搭建完整的建模体系。无论你是刚接触建模的新生,还是希望提升科研与竞赛能力的学者与工程师,本专栏都将为你提供一条清晰、高效、可实操的建模成长路线,助力你快速进阶,突破难点,迈向数学建模竞赛与实际应用的更高峰 🚀!

**My Coding Family** 1352

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

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

weixin_34164146的博客 823

LLaMA Factory添加新模型template的实战解析

本文主要介绍了LLaMA Factory添加新模型template的实战解析,希望对使用大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 实战解析 2.1 检查代码 2.2 修改代码

herosunly的博客 19万+

第七节:面向对象

四、this关键字的两种核心用法 `this`代表当前对象,相当于“我”,主要有两种应用场景: 1. this. 区分成员变量和局部变量 当成员变量和局部变量同名时,用`this.属性名`明确表示调用当前对象的成员变量,避免命名冲突。// this.name指成员变量,name指局部变量 } } ``` 2. this() 调用本类其他构造方法 在构造方法中,用`this()`调用本类无参构造方法,用`this(实参)`调用本类有参构造方法。后续的封装、继承、多态三大特性,也都是建立在这些基础之上的。

2601_95554880的博客 378

手把手实现STM32+ESP8266+原子云服务器+手机APP应用——第一节-ATK-ESP8266 WIFI模块通过USB-TTL实现连接原子云服务器与手机APP互相通信

本节实现ATK-ESP8266 WIFI模块通过USB-TTL实现连接原子云服务器与手机APP通信。具体来说,本节使用串口CH340(USB-TTL)连接正点原子ATK-ESP8266 WIFI模块,通过AT命令实现连接原子云服务器与手机APP互相通信,实现硬件设备(WIFI模块)与云服务器和手机APP的互相通信。后面章节不用串口CH340(USB-TTL),通过编写单片机程序实现数据远程互相通信,并介绍手机APP的程序设计。单片机任意款即可,STM32F1系列,F4系列,H系列等都可以。本系列为(手把手实

嵌入式阿齐Archie 8422

RK3588开发笔记-Buildroot编译host-nodejs报错解决ModuleNotFoundError: No module named ‘_bz2‘

在RK3588的开发过程中,使用Buildroot进行系统的构建和编译是一个常见的选择。然而,在编译host-nodejs的过程中,有时会遇到报错信息提示。这个错误通常是由于Python环境中缺少相应的模块导致的。以下将记录我解决这个问题的过程。。在RK3588的开发过程中,使用Buildroot编译host-nodejs时遇到的错误,通常是由于缺少相应的Python模块导致的。通过配置buildroot pythong bzip2开发库并重新编译,可以解决这个问题。

flypig has a dream! 901

第七节:类和对象【一】【java】

📖Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好

m0_72161237的博客 653

进阶篇第8节:寄存器压力——寄存器溢出对性能的影响及优化

**摘要:GPU寄存器是最快的存储单元(1周期访问),但数量有限。过高的寄存器使用会导致溢出(变量存入慢速本地内存)或降低占用率(减少并发线程数),严重影响性能。优化方法包括复用变量、使用共享内存替代寄存器数组、限制寄存器数量(--maxrregcount)等。实际测试显示,将寄存器使用从48个降至24个可使性能提升37%。分析工具如Nsight Compute可帮助检测寄存器压力。面试常见问题涉及寄存器溢出的检测与优化策略。

PeterPan的博客 95

JAVA面向对象编程

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

Kali与编程 1207

NTscan扫描工具

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

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java学习概论第七节

面向对象基础 面向对象的概念: 1、面向对象是一种符合人类思维习惯的编程思想 2、现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系 3、在程序中使用对象来映射现实中的事物,使用对象的关联来描述事物之间的联系,这种思想就是面向对象 一、面向对象思想 面向对象是以现实生活中客观存在的事物(即对象)来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以事物对象为中心来思...

L_hhy的博客 334

精雕软件(JDpaint) 5.5 绿色版

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

第七节:Java 类与对象

1. 什么是面向对象 面向对象是学习 Java 必须掌握的知识,也是 Java 里的一个重难点。那什么是面向对象呢? 在讲解面向对象之前,我们得解决一个问题,什么是对象? 对象,从字面意思来看就是我们面对的物象。由此我们便可以知道,万事万物皆为对象。比如:一台电脑,一辆汽车,一部手机等等都是对象。 面向对象,从字面意思来看就是我们人面对着一个对象。其实就是指我们从这个对象的整体出发去看它...

诺天高云淡的博客 596

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

第七节 面向对象

注意:当堆内存中的对象,没有被任何变量引用(指向)时,就会被判定为内存中的“垃圾”。2.一个java文件可以定义多个类,但是只能一个是使用public修饰的类。3.成员变量(name、price)的数据放在哪里,存在于哪个位置?c变量名中存储的是什么?)类:是共同特征的描述(设计图);对象:是真实存在的具体实例。1、成员变量(代表属性的,一般是名词)2、成员方法(代表行为的,一般是动词)类名对象名=new 类名();1.对象到底是放在哪个位置的?存储的是对象在堆内存中的地址。对象中,存在于堆内存中。

hanhanT的博客 399

【JavaSE系列】第七节 —— 类和对象(1)

今天我们将进入到类和对象的内容,所谓类和对象是学习Java中非常重要的一章内容,我们必须掌握好本节内容,才能更好的应用Java的相关技术。

未央的博客哟 770

黑马程序员JAVA学习第七节

黑马程序员JAVA学习第七节 (视频链接黑马程序员全套Java教程_Java基础入门教程,零基础小白自学Java必备教程_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili) 本节主要内容是,对应视频302-

weixin_51181574的博客 1210

从“0”开始学JAVA——第七节下 类和对象

先来公布上一节习题的答案上一节当中我们学会了如何定义一个基础的类以及如何实现继承,那么如果想要实例化一个类该如何操作呢?所以我们需要创建一个测试类,在测试类里面实例化类的对象,那么该如何实例化呢?这里就需要两方面的知识点:get方法、set方法和构造函数(构造器)。

m0_74754754的博客 830

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

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

qq_41293655的博客 359

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

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

zf888999666的博客 185

学Java第七节字符串

字符类型:char 大写换小写:(char)(字符+‘A’-‘a’)把大写字母和小写字母之间的距离加起来,就换算成了小写字母 小写换大写:(char)(字符+‘a’-‘A’) 逃逸字符:无法打印出来的控制字符或特殊字符,由一个反斜杠""开头,再跟上一个字符,这两个字符合起来,组成了一个字符。 回车和换行是两个操作,这两个动作是来源于早期打字机打字的动作。 字符 意义 字符 意义 \b 回退一格 \"

weixin_46225406的博客 190

JavaSE第七节————类和对象(上)

类和对象 1. 面向对象的初步认知 2. 类的定义和使用 3. 类的实例化 4. this引用 5. 对象的构造及初始化 6. 封装 7. static成员 8. 代码块 9. 内部类 10. 对象的打印

2301_79418684的博客 752

第七节 面向对象初步(1)

面向对象初步__init__构造方法和__new__方法实例属性和实例方法实例属性实例方法类对象、类属性、类方法、静态方法类对象类属性类方法静态方法内存分析实例对象和类对象创建过程(重要)__del__方法(析构函数)和垃圾回收机制__call__方法和可调用对象 面向对象更加关注的是“软件中对象之间的关系”,是一种“设计者”思维,适合编写 大规模的程序。 面向对象(Object)思想更契合人的思维模式。我们首先思考的是“怎么设计这个事物?” 比如思考造车,我们就会先思考“车怎么设计?”,而不是“怎么按步骤

weixin_51094125的博客 305

第七节:面向对象——练习

小练习 1.用面向对象的思维来模拟LOL里的盖伦上阵杀敌 2.用面向对象的思维来完成植物大战僵尸 植物 僵尸 场景(客户端)

zhangxu5的博客 550
上一篇: 零基础学Java第六节(面向对象二)
下一篇: 一文学完Linux常用命令
Code_ForYou
博客等级 码龄5年 0粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值