Java基础语法(十一)类?对象?我能不能写个妹子类给自己造个(一个够吗?)对象?
文章目录
前言
首先声明,本人并不是什么大佬,也是一个初入IT界的小白,我们一起加油学习!
这次可以学习自定义类和对象的知识了,让我们先去了解什么是对象,什么是类
造妹计划:造一个妹子类,自己定义一个完美的对象!
类
那么什么是类呢?类,分门别类的类,类别的类,人“类”就是我们现实生活中的一个类,而每一个人就是一个对象。
对象就是特殊个体,类就是一般个体,可能还是不那么好理解,我就再详细点
“我认识一个叫做丸子的女孩”——这句话中,丸子就是对象,代表一个真正的人,具体的人;而女孩就是类,代表一个抽象的东西,一个笼盖所有女孩的类别。
自定义女孩类
把具有相同特征的一些东西/事物分门别类,我们自己造一个名字
好,我们现在造一个火柴盒妹子类,用比较艺术化的话来说就是:只具其形,不具其神!
class Girl{ }
好了,这就是我们的女孩类,是不是感觉啥都没有,不对不对,Java类中有一个默认的东西,叫做构造方法,构造方法,构造方法,重要的事情说三遍!
构造方法:实例化对象时,自动调用,默认会存在一个无参数的构造方法
- 无参构造方法:默认构造方法,只用于创建实例化对象,无法接受参数
public class Ec4_19 { public static void main(String[] args) { Girl girl = new Girl(); System.out.println(girl); //Girl@4517d9a3,返回的是内存地址 } } class Girl{ }
- 有参构造方法: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 */
应该已经了解构造函数了吧,啊,这个实在想不出来什么骚话来形容~~
女孩的属性
类中有属性,分为成员变量,局部变量和类变量
在我们创建的女孩类中,属性就是女孩们的诸如身材,相貌等的东西,当然,像什么年龄名字的,也是必须有的,不过不同的属性有不同的作用,所以属性也分上面三种
- 成员变量
在类中,方法外定义,在实例化对象时创建,并可以被实例化对象拿去用(赋值,修改),不多说,看代码
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岁了 */
- 局部变量
在方法中定义,作用于在定义的方法中,也就是说只在该方法中能够使用,比如在构造方法中的变量,就无法通过实例化的对象调用
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岁了 */
- 类变量
需要通过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岁了 */
- 私有属性
无法被外界访问的属性,就是私有属性,就像女孩们有些东西不会被别人知道一样(比如三围之类的啦)
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基础针对自己薄弱环节总结04(面向对象多态)
- 【Java.Web】JSP —— 语法基础 —— 隐式对象implicit Objects
- JSON(2):如何将一个java对象转换为一个符合json语法的字符串
- 【java基础】单例设计模式:保证一个类在内存中的对象唯一性
- java 基础语法自己总结
- 第五天02 JAVA基础语法(认识对象)(学习笔记)
- java能不能自己写一个类叫java.lang.System/String?
- Java自己实现的一个简单的tomcat通过XML配置读取并返回相应Servlet对象
- 6 Java基础语法(二维数组,参数传递与数据加密问题)&面向对象(面向对象思想,类与对象及使用,对象内存图解)
- android开发之java的一些基础知识详解,java编程语法,扎实自己的android基本功
- C#语法基础-定义一个矩形对象
- java能不能自己写一个类叫java.lang.System/String正确答案
- 跟着姜少学Java基础编程之十一:面向对象-类与对象
- java基础学习总结(二十一):自己写一个java.lang.reflect.Proxy代理的实现
- Java基础语法、Java对象和类、Java基本数据类型、Java变量类型
- JAVA基础——制作两个线程对象,要求用同步块的方式使第一个线程运行2次,然后将自己阻塞起来,唤醒第二个线程,第二个线 程再运行2次,然后将自己阻塞起来,唤醒第一个线程……两个线程交替执行。
- Java培训笔记十一(自己总结的Java语法基础)
- Java_jdbc 基础笔记之八 数据库连接(写一个查询Student对象的方法)
- 黑马程序员_Java语法及面向对象基础<一>
- Java基础语法学习——面向对象基础