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

Java 面向对象入门

时间:2023-12-10 23:11:51浏览次数:61  
标签:Java String 对象 age name 面向对象 class public 入门

第一章:类与对象

1.1 类与对象

类与对象的定义和使用
在 Java 中定义类,使用关键字 class 完成。语法如下:

class 类名称 {
    属性 (变量) ;
    行为 (方法) ;
}

我们可以通过下面的实例来感受一下如何定义一个 Person 类。

class Person {     // 类名称首字母大写
    String name ;
    int age ;
    public void tell() {        // 没有static
        System.out.println("姓名:" + name + ",年龄:" + age) ;
    }
}

类定义完成之后,是无法直接使用的。如果要使用,必须依靠对象,那么由于类属于引用数据类型,所以对象的产生格式(两种格式)如下:

(1)格式一:声明并实例化对象

类名称 对象名称 = new 类名称 () ;

(2)格式二:先声明对象,然后实例化对象

类名称 对象名称 = null ;
对象名称 = new 类名称 () ;

1.2 完善合适的类

你需要根据 Main.java 文件中的代码,来完善 Solution 类中的相关代码。在 Solution 类中添加 show() 方法打印信息。

class Solution {
	//write your code here
        String name;
		int age;
        public void show(){
			System.out.printf("Name: %s, age: %d",this.name,this.age);
		}
}

1.3 动物园的新朋友

每天动物园都有可能进来新的朋友,为了方便管理员管理,需要对每个动物起一个名字,并记录这个动物的年龄和种类。
请您在 Animal 类中完成该功能:
创建一个 setAnimalMessage(String name, String type, int age) 方法,设置每个动物的信息。
创建一个方法 printAnimalMessage(),打印动物的信息。打印的格式如下:

姓名 is a 种类 and is 年龄 years old this year。
public class Animal {
    private String name,type;
    private int age;
    public void setAnimalMessage(String name, String type, int age) {
        this.name = name;
        this.type = type;
        this.age = age;
    }

    public void printAnimalMessage() {
		System.out.println(name+" is a "+type+" and is "+age+" years old this year.");
    }
}

第二章:属性和方法

2.1属性和方法

我们可以通过下面的实例来感受一下如何使用对象操作类。
(1)格式一:声明并实例化对象

class Person { 
    String name;
    int age;
    public void get() {
        System.out.println("姓名:" + name + ",年龄:" + age);
    }
}
public class TestDemo {
    public static void main(String args[]) {
        Person per = new Person();//声明并实例化对象
        per.name = "张三";        //操作属性内容
        per.age = 30;            //操作属性内容
        per.get();              //调用类中的get()方法
    }
}

运行结果:
姓名:张三,年龄:30
(2)格式二:先声明对象,然后实例化对象

class Person { 
    String name;
    int age;
    public void get() {
        System.out.println("姓名:" + name + ",年龄:" + age);
    }
}

public class TestDemo {
    public static void main(String args[]) {
        Person per = null;   //声明对象
        per = new Person(); //实例化对象
        per.name = "张三"; //操作属性内容
        per.age = 30;     //操作属性内容
        per.get();       //调用类中的get()方法
    }
}

运行结果:
姓名:张三,年龄:30

2.2补充 Student 类的属性和方法

请根据 Main 中对 Student 类的属性和方法的调用,补充 Student 的属性和方法。

public class Student {
    // write your code here
    String name;
    int age;
    String sex;

//定义常量
    final static String SEX_FEMALE = "female";
    final static String SEX_MALE = "male";
    
    public void setSex(String sex){
        this.sex = sex;
    }
//重写toString方法
    public String toString(){
        return "name = "+name+", age = "+age+", sex = "+sex;
    }

}

2.3 普通单例模式

请实现一个单例模式的类 SingleClass,使 Main 方法可以正确运行。

public class SingleClass {
    public String toString() {
        return "This is a Single Instance Class.";
    }
    
    // write your code here
 //创建 SingleClass 的一个对象
   private static SingleClass instance = new SingleClass();
 
   //让构造函数为 private,这样该类就不会被实例化
   private SingleClass(){}
 
   //获取唯一可用的对象
   public static SingleClass getInstance(){
      return instance;
   }
 
}

标签:Java,String,对象,age,name,面向对象,class,public,入门
From: https://www.cnblogs.com/3456939606zwp/p/17893456.html

相关文章

  • Js(Javascript)中的apply方法的使用
    ​ JavaScript中的apply()方法用于调用函数,允许指定函数的this对象和参数。也就是通过function的apply方法来调用方法,可以改变方法的this的对象,并且还可以传入方法参数,apply对于面向对象编程还是很有用的。参考文档:Js(Javascript)中的apply方法的使用-CJavaPy1、基本语......
  • 人工智能学习二、tensorflow快速入门
    一、项目流程数据预处理-》模型训练-》模型保存-》模型预测二、要点:数据类型运行机制数据IO模型训练模型保存模型调用 三、编写tensorflow的两个步骤:(1)构建计算图graphgraph中包含tensor和operationtensor:类......
  • java中C3P0、Druid、HikariCP 、DBCP连接池的jar包下载与IDEA配置
    ##一、什么是连接池连接池是应用程序与数据库之间的一个缓冲区,它存储了一定数量的空闲数据库连接,当应用程序需要连接数据库时,可以从连接池中获取一个可用连接,使用完毕后再将连接归还给连接池,从而避免了每次连接都需要创建和销毁连接的开销,提高了应用程序的性能和可伸缩性。连接池......
  • go-zero开发入门-API网关鉴权开发示例
    本文是go-zero开发入门-API网关开发示例一文的延伸,继续之前请先阅读此文。在项目根目录下创建子目录middleware,在此目录下创建文件auth.go,内容如下://鉴权中间件packagemiddlewareimport("context""errors""net/http")varErrInvalidToken=errors.Ne......
  • java 策略模式解决if-else ,函数式接口解决编写多个子类的问题
    /***@author:szc*@date:2023/9/222:45*@version:1.0*@description:从map中获取函数式接口,解决if-else多个子类问题*/@ServicepublicclassMapToInterface{@AutowiredprivateTypeResulttypeResult;privatestaticMap<String,Functio......
  • 常量与变量:JavaScript中的稳定与灵活
    在编程的世界里,数据的存储与操作是构建任何功能的基础。在JavaScript这门轻量级,解释型的脚本语言中,处理数据的两个基本概念是常量(Constants)和变量(Variables)。理解它们的区别与用法,对于编写高效、可维护的代码至关重要。变量:数据的灵活容器在JavaScript中,变量可以被视为数据的容器。......
  • Java并发编程的高级探索
    随着多核处理器的普及,Java并发编程变得越来越重要。为了充分利用硬件资源,开发者需要掌握并发模式和算法、锁的优化技术、并发工具的高级应用,以及并发程序的性能分析方法。并发模式和算法在并发编程中,特定的模式和算法可以帮助我们解决一些复杂的问题:生产者-消费者模式:在多线程环境......
  • Java IO流(下)
    书接上回:异常完整形态try...catch...引入finally语句块:finally里面的代码一定被执行,除非虚拟机停止。因此释放资源之类的代码非常适合写在finally语句块内。但在关闭前也要判断是否已初始化(是否为null)。importjava.io.FileInputStream;importjava.io.FileOutputStream;importj......
  • 通过宿主机查看K8S或者是容器内的Java程序的简单方法
    通过宿主机查看K8S或者是容器内的Java程序的简单方法背景最近一个项目的环境出现了cannotcreatenativeprocess的错误提示出现这个错误提示时,dockerexec或者是kubeexec进入容器/POD内部后,无法使用jstack等的命令.然后想简单查看一下问题原因都无从下手.这次......
  • Java实现对Hadoop HDFS的API操作
    1.配置Hadoop的Windows客户端Hadoop配置Windows客户端2.新建Maven项目[略]3.添加依赖<!--https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-client--><dependency><groupId>org.apache.hadoop</groupId>......