首页 > 编程语言 >Java 面向对象

Java 面向对象

时间:2023-03-05 17:01:22浏览次数:48  
标签:语句 Java name 构造方法 源文件 面向对象 Puppy public


1、构造方法

每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。
在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法,根据传参不同,引用不同的构造方法。

public class Puppy{
public Puppy(){

}
public Puppy(String name){
// 这个构造器仅有一个参数:name
}
}

2、创建对象:

对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步:

声明:声明一个对象,包括对象名称和对象类型。
实例化:使用关键字new来创建一个对象。
初始化:使用new创建对象时,会调用构造方法初始化对象。

下面是一个创建对象的例子:

public class Puppy{
public Puppy(String name){
//这个构造器仅有一个参数:name
System.out.println("小狗的名字是 : " + name );
}
public static void main(String []args){
// 下面的语句将创建一个Puppy对象
Puppy myPuppy = new Puppy( "tommy" );
}
}

3、访问实例变量和方法:

通过已创建的对象来访问成员变量和成员方法,如下所示:

/* 实例化对象 */
ObjectReference = new Constructor();
/* 访问其中的变量 */
ObjectReference.variableName;
/* 访问类中的方法 */
ObjectReference.MethodName();

实例

public class Puppy{
int puppyAge;
public Puppy(String name){
// 这个构造器仅有一个参数:name
System.out.println("小狗的名字是 : " + name );
}

public void setAge( int age ){
puppyAge = age;
}

public int getAge( ){
System.out.println("小狗的年龄为 : " + puppyAge );
return puppyAge;
}

public static void main(String []args){
/* 创建对象 */
Puppy myPuppy = new Puppy( "tommy" );
/* 通过方法来设定age */
myPuppy.setAge( 2 );
/* 调用另一个方法获取age */
myPuppy.getAge( );
/*你也可以像下面这样访问成员变量 */
System.out.println("变量值 : " + myPuppy.puppyAge );
}
}

编译并运行上面的程序,产生如下结果:

小狗的名字是 : tommy
小狗的年龄为 : 2
变量值 : 2

4、源文件声明规则:

当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则。

一个源文件中只能有一个public类

一个源文件可以有多个非public类

源文件的名称应该和public类的类名保持一致。例如:源文件中public类的类名是Employee,那么源文件应该命名为Employee.java。

如果一个类定义在某个包中,那么package语句应该在源文件的首行。

如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面。

import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。

类有若干种访问级别,并且类也分不同的类型:抽象类和final类等。

除了上面提到的几种类型,Java还有一些特殊的类,如:内部类、匿名类。


标签:语句,Java,name,构造方法,源文件,面向对象,Puppy,public
From: https://blog.51cto.com/sdwml/6101566

相关文章

  • JavaScript dom查询2
    <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.dtd"><html> <head> <metahttp-equiv="Content-Type"content="text/html;......
  • java开发JDK工具的安装
    1.java开发工具的构成(1)JVM即java虚拟机,用于解释翻译java生成的自解码文件,因为java中有了这个,才能实现java语言跨平台运行java自解码文件(2)JRE即java运行环境,它是由JVM和ja......
  • JavaSE——集合ArrayList
    集合和数组的优势对比:长度可变添加数据的时候不需要考虑索引,默认将数据添加到末尾1.1ArrayList类概述什么是集合提供一种存储空间可变的存储模型,存储的数据......
  • DVWA 之 JavaScript - JavaScript攻击
    十二、JavaScript-JavaScript攻击原理在页面上输入的内容中带有可执行的javascript,而使用这段输入内容的时候,让这段用户提供的代码执行了,也就是你写的代码执行了非你......
  • Java 类加载时机(动态、静态) 与 类加载过程 详解
    (目录)类加载动态加载和静态加载反射机制是java实现动态语言的关键,也就是通过反射实现类动态加载。静态加载:编译时加载相关的类,如果没有则报错,依赖性太强动态......
  • 三天吃透Java基础八股文
    本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校......
  • java内存分配
    1.栈方法运行时使用的内存。比如main方法运行,进入方法栈中执行2.堆存储对象或者数组。new来创建的都存储在堆内存3.方法区存储可以运行的class文件4.本地方法栈JVM......
  • java序列化 教程
    序列化的条件:序列化必须要满足两个条件:1.该对象必须实现java.io.Serializble接口2.改对象的所有属性必须是可序列化的,若有属性不可序列化也须注明是短暂的 注:检......
  • java8新特性-引用流ReferencePipeline
    ReferencePipeline实现了Stream接口,Stream接口定义了顺序和并行聚合的元素序列操作。publicinterfaceStream<T>extendsBaseStream<T,Stream<T>>{Stream<T......
  • 用javascript实现轮播图
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"conten......