Java基础语法(十一)类?对象?我能不能写个妹子类给自己造个(一个够吗?)对象?

Java基础语法(十一)类?对象?我能不能写个妹子类给自己造个(一个够吗?)对象?

Java基础语法(十一)类?对象?我能不能写个妹子类给自己造个(一个够吗?)对象?

前言

首先声明,本人并不是什么大佬,也是一个初入IT界的小白,我们一起加油学习!

这次可以学习自定义类和对象的知识了,让我们先去了解什么是对象,什么是类

造妹计划:造一个妹子类,自己定义一个完美的对象!

在这里插入图片描述

那么什么是类呢?类,分门别类的类,类别的类,人“类”就是我们现实生活中的一个类,而每一个人就是一个对象。
对象就是特殊个体,类就是一般个体,可能还是不那么好理解,我就再详细点
“我认识一个叫做丸子的女孩”——这句话中,丸子就是对象,代表一个真正的人,具体的人;而女孩就是类,代表一个抽象的东西,一个笼盖所有女孩的类别。

在这里插入图片描述

自定义女孩类

把具有相同特征的一些东西/事物分门别类,我们自己造一个名字

好,我们现在造一个火柴盒妹子类,用比较艺术化的话来说就是:只具其形,不具其神!

class Girl{
   
    
}

好了,这就是我们的女孩类,是不是感觉啥都没有,不对不对,Java类中有一个默认的东西,叫做构造方法构造方法构造方法,重要的事情说三遍!
构造方法:实例化对象时,自动调用,默认会存在一个无参数的构造方法

  1. 无参构造方法:默认构造方法,只用于创建实例化对象,无法接受参数
public class Ec4_19 {
   
    public static void main(String[] args) {
   
        Girl girl = new Girl();
        System.out.println(girl);  //Girl@4517d9a3,返回的是内存地址
    }
}
class Girl{
   

}
  1. 有参构造方法:Java类中可以创建多个构造函数,但是参数和返回类型不能相同,这种情况叫做重载,意思就是你可以创建很多个构造函数
public class Ec4_19 {
   
    public static void main(String[] args) {
   
        Girl girl = new Girl();
        Girl girl1 = new Girl("Jecy");
    }
}
class Girl{
   
    Girl(String name){
   
        System.out.println("有参构造函数"+" "+name);
    }
    Girl(){
   
        System.out.println("无参构造函数");
    }
}
/* 输出结果为: 无参构造函数 有参构造函数 Jecy */

应该已经了解构造函数了吧,啊,这个实在想不出来什么骚话来形容~~

女孩的属性

类中有属性,分为成员变量,局部变量和类变量
在我们创建的女孩类中,属性就是女孩们的诸如身材,相貌等的东西,当然,像什么年龄名字的,也是必须有的,不过不同的属性有不同的作用,所以属性也分上面三种

  1. 成员变量
    在类中,方法外定义,在实例化对象时创建,并可以被实例化对象拿去用(赋值,修改),不多说,看代码
public class Ec4_19 {
   
    public static void main(String[] args) {
   
        Girl girl = new Girl(); //实例化对象
        girl.age = 10;  //调用 设置成员变量值
        girl.name = "Jeccy";  //调用 设置成员变量值
        System.out.printf("%s今年%d岁了",girl.name, girl.age);
    }
}
class Girl{
   
    public int age;
    public String name;
}
/* 输出结果为: Jeccy今年10岁了 */
  1. 局部变量
    在方法中定义,作用于在定义的方法中,也就是说只在该方法中能够使用,比如在构造方法中的变量,就无法通过实例化的对象调用
public class Ec4_19 {
   
    public static void main(String[] args) {
   
        Girl girl = new Girl(10,"Jeccy");  //用有参构造方法实例化对象
        System.out.printf("%s今年%d岁了",girl.name, girl.age);
    }
}
class Girl{
   
    public int age;  //成员变量
    public String name;  //成员变量
    Girl(int a, String n){
   
        age = a;  //局部变量,无法通过实例化对象直接调用
        name = n;  //局部变量
    }
}
/* 输出结果为: Jeccy今年10岁了 */
  1. 类变量
    需要通过static修饰符修饰,可以直接通过类名调用
public class Ec4_19 {
   
    public static void main(String[] args) {
   
        Girl.name = "西施";
        Girl.age = 10;
        System.out.printf("%s今年%d岁了",Girl.name, Girl.age);
    }
}
class Girl{
   
    public static int age;
    public static String name;
}
/* 运行结果: 西施今年10岁了 */
  1. 私有属性
    无法被外界访问的属性,就是私有属性,就像女孩们有些东西不会被别人知道一样(比如三围之类的啦)
public class Ec4_19 {
   
    public static void main(String[] args) {
   
        Girl.name = "西施";
        Girl.age = 10;
        System.out.printf("%s今年%d岁了",Girl.name, Girl.age);
    }
}
class Girl{
   
    private static int age;
    private static String name;
}
/* 这样写,就算是定义的静态方法,但是因为是私有的,也无法被访问 运行会报错 */

在这里插入图片描述

女孩的动作

行为就是方法,一般来说,Java类的规范写法是为每个属性设置一个setXxx方法,一个getXxx方法,并且将每个属性设为私有方法
就像这样:这是一般的规范写法

public class Ec4_19 {
   
    public static void main(String[] args) {
   
        Girl girl = new Girl();
        girl.setAge(10);
        girl.setName("Jerry");
        System.out.printf("%s今年%d岁了", girl.getName(), girl.getAge());
    }
}
class Girl{
   
    private int age;
    private String name;
    void setName(String name){
   
        this.name = name;
    }
    String getName(){
   
        return name;
    }
    void setAge(int age){
   
        this.age = age;
    }
    int getAge(){
   
        return age;
    }

}

当然,也有别的普通的方法,比如妹子会撒娇,会打游戏之类的

public class Ec4_19 {
   
    public static void main(String[] args) {
   
        Girl girl = new Girl();
        girl.setAge(10);
        girl.setName("Jerry");
        girl.playGame();
        System.out.println("");
        girl.coqutry();
        System.out.printf("%s今年%d岁了", girl.getName(), girl.getAge());
    }
}
class Girl{
   
    private int age;
    private String name;
    void setName(String name){
   
        this.name = name;
    }
    String getName(){
   
        return name;
    }
    void setAge(int age){
   
        this.age = age;
    }
    int getAge(){
   
        return age;
    }
    void playGame(){
   
        System.out.printf("%s打游戏很厉害", name);
    }
    void coqutry(){
   
        System.out.println("哥哥不要这样啦,人家害怕啦~~~");
    }

}
/* 运行结果: Jerry打游戏很厉害 哥哥不要这样啦,人家害怕啦~~~ Jerry今年10岁了 */

结语

好了,今天到这里就结束了,我们的造妹行动也算是跨出了从零到有这一突破性的一步!!!喝彩~~
例子中的年龄有点不好,那可是三年起步啊,不行不行,以后不能再这样了!
giao辞了,xdm

Java基础语法(十一)类?对象?我能不能写个妹子类给自己造个(一个够吗?)对象?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100261.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sqljdbc4.jar和sqljdbc.jar下载「建议收藏」

    sqljdbc4.jar和sqljdbc.jar下载「建议收藏」官网下载:windows版本http://go.microsoft.com/fwlink/?LinkId=144633&clcid=0x804UNIX版本http://go.microsoft.com/fwlink/?LinkId=144635&clcid=0x804  推荐几个网站:http://maven.ibiblio.org/maven/http…

    2022年7月16日
    18
  • 3.20 DAY3[通俗易懂]

    3.20 DAY3[通俗易懂]1.msg=’我叫%s,我看着像%r’%(‘太白’,’郭德纲’)print(msg)我叫太白,我看着像’郭德纲’句中出现引号,把%s替换成%r,可以打印出原来样式2.ASCII8位字节英文字母,数字,特殊字符unicode:万国码  python2:unicode默认是2个字节表示一个字符  python3:unicode统一是4个字节表示一个字符    创建初期16位字…

    2022年9月25日
    2
  • 数据可视化软件在大数据时代的局限性「建议收藏」

    数据可视化软件在大数据时代的局限性「建议收藏」如今,数据可视化软件风靡起来,很多企业认为数据可视化软件是启用先进分析技术的入口。但对一些应用而言,情况并不是这样的。纽约市的非营利组织DonorsChoose致力于跟踪和分析当地学校获得的财务捐助。在它试图为学校管理者、当地国会议员和记者出具一份报告时,它意识到数据可视化软件并不是万能的。乍一看,数据可视化系统对这种非技术组织来说应该是最好的选择了,不过该组织的数据科学家VladDubovsk…

    2022年9月25日
    2
  • ping命令的使用及代码_通过命令查看ping路径

    ping命令的使用及代码_通过命令查看ping路径在这个时代,科技越来越发达,网络已经越来越成为人们不可缺少的一部分。计算机也已经是很多学校的课程了,因为计算机技术是非常有技术性的专业,它其中涉及到很多专业知识,需要通过学习才能掌握。今日小编就为大家介绍一个计算机的命令,它叫做Ping,这边介绍一下它的入门知识,主要是关于ping连接和命令方面的介绍。  1、Ping的基础知识  ping命令相信大家已经再熟悉不过了,但是能把ping的功能发…

    2022年4月19日
    800
  • jasypt 原理_litmp试剂

    jasypt 原理_litmp试剂文章目录一、jasypt的启动类加载二、jasypt中Encryptor、Detector和Resolver加载三、jasypt中EnableEncryptablePropertiesBeanFactoryPostProcesso四、proxy代理方式增强propertySources五、wrapper包装类方式增强propertySources六、resolver中属性值解密作者:史佳健推荐理由:文章详尽并有对应分析说明一、jasypt的启动类加载引入了jasypt-spring-boot-st

    2022年9月25日
    2
  • SQL Server 2017下载,安装,打开步骤「建议收藏」

    vSQLServer2017下载内容分为两部分SQLServer2017 Developer和SQLserverMamngementStudio第一部分:1.官网下载SQLServer2017Developer      https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads2….

    2022年4月10日
    371

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号