你应该问怎么实例化一个类生成一个对象
java 是先定义一个类 ,然后new 这个类,然后生成对象的
Java编程中类和对象的定义
1,什么是类?
答:类是客观存在的,抽象的,概念的东西。
2,什么事对象?
答:对象是具体的,实际的,代表一个事物。例如:车是一个类,汽车,自行车就是他的对象。
关于类与对象的描述:类是对象的模版,对象是类的一个个体
3,Java中定义类的方法?
class 类名
用Java语法定义人类:
public class Person{
}
4,对象的定义方法?
1,对象声明:类名 对象名;
2,对象创建 对象名 = new 类名(); new作用:分配内存空间。
也可以合写为:类名 对象名 = new 类名();
5,例子:创建一个空调,并调用制冷。
//设计一个空调package practice;
public class Kongtiao {
//空调属性
String name;
String pinpai;
String pishu;
int tempeture;
//定义制冷行为
void cool()
{
tempeture--;
}
//定义加热行为
void hot()
{
tempeture+=7;
}
//主函数
public static void main(String[] args){
Kongtiao kt = new Kongtiao();
ktname = "美的";
ktpishu = "2匹";
kttempeture = 20;
ktpinpai = "志高";
/
ktcool();
Systemoutprintln("空调的温度是"+kttempeture);
/
kthot();
Systemoutprintln("空调的温度是"+kttempeture);
}
}
对象是类的一个实例,有状态和行为。类是一个模板,它描述一类对象的行为和状态。
看图,图中男孩女孩为类,而具体的每个人为该类的对象。
set方法是设置值,get方法是取值。
在java的学习中,面向对象应该是java技术的重中之重,虽然在生活中没有对象可以面对,但在技术中还是要一直接触面对对象,而且不可避免。今天对面向对象来了一个小总结。
一、面向对象的特点:
1、将复杂的事情简单化。
2、面向对象将以前的过程中的执行者,变成了指挥者。
3、面向对象这种思想是符合现在人们思考习惯的一种思想。
过程和对象在我们的程序中是如何体现的呢?过程其实就是函数;对象是将函数等一些内容进行了封装。
二、匿名对象使用场景:
1、当对方法只进行一次调用的时候,可以使用匿名对象。
2、当对象对成员进行多次调用时,不能使用匿名对象。必须给对象起名字。
三、在类中定义其实都称之为成员。成员有两种:
1、成员变量:其实对应的就是事物的属性。
2、成员函数:其实对应的就是事物的行为。
所以,其实定义类,就是在定义成员变量和成员函数。但是在定义前,必须先要对事物进行属性和行为的分析,才可以用代码来体现。
四、类中怎么没有定义主函数呢?
注意:主函数的存在,仅为该类是否需要独立运行,如果不需要,主函数是不用定义的。主函数的解释:保证所在类的独立运行,是程序的入口,被jvm调用。
五、成员变量和局部变量的区别:
1、成员变量直接定义在类中;局部变量定义在方法中,参数上,语句中。
2、成员变量在这个类中有效;局部变量只在自己所属的大括号内有效,大括号结束,局部变量失去作用域。
3、成员变量存在于堆内存中,随着对象的产生而存在,消失而消失;局部变量存在于栈内存中,随着所属区域的运行而存在,结束而释放。
六、构造函数和一般函数有什么区别呢?
1、两个函数定义格式不同。
2、构造函数是在对象创建时,就被调用,用于初始化,而且初始化动作只执行一次。
一般函数,是对象创建后,需要调用才执行,可以被调用多次。
七、创建一个对象都在内存中做了什么事情?
1、先将硬盘上指定位置的Personclass文件加载进内存。
2、执行main方法时,在栈内存中开辟了main方法的空间(压栈-进栈),然后在main方法的栈区分配了一个变量p。
3、在堆内存中开辟一个实体空间,分配了一个内存首地址值。new
4、在该实体空间中进行属性的空间分配,并进行了默认初始化。
5、对空间中的属性进行显示初始化。
6、进行实体的构造代码块初始化。
7、调用该实体对应的构造函数,进行构造函数初始化。
8、将首地址赋值给p ,p变量就引用了该实体。(指向了该对象)
即将离开校园的你心里是否有太多太多的不舍?最让你不舍的是什么呢?不舍得就此结束了的读书生涯,不舍得老师同学之间的情谊,不舍得曾经参加的学生社团,不舍得尽管吐槽但还是爱的校园饭堂,相信也有很多同学最不舍的是那个让自己牵肠挂肚的人。离别需要勇气,告白更加需要勇气,那么面对那个让你心动的女生或者男生,你是否有勇气去表达你的倾慕之情?**《心动》有句着实令人心动的台词:“你辛苦归辛苦,什么时候有空嫁给我。”男主角的勇气值得学习。**《心动》对于这个让你心动的人,相信你依然清晰地记得当初那么的一瞬间,她或他是如何让你怦然心动。是军训时的英姿飒爽?是上课时的秀外慧中?是舞台上的才华横溢?是社团中的精明强干?是校道上的袅袅婷婷?是图书馆里的温文尔雅? 只惊鸿一瞥,便一眼万年,以后只要有她或他的地方,就有你的目光驻足,每一次在校园的路上你是多么希望能够遇到她或他呢?你是否曾经因为自己的胆小不敢去表白?总想着自己配不上她或他,先要努力提升自己才有勇气去表白,一直在等时机,后来发现她或他跟其他人在一起的时候你又是如何捶胸顿足?独自疗伤?几年过去了,至今你心里一直有他或她,但是你不知道人家心里到底有没有你,那为什么不去追求答案呢?如果她或他现在依然单身,你是否能够有勇气去表达倾慕之情,你应该学习一下赵默笙,人家一女生都能够在大庭广众之下去追求何以琛,你为什么不敢去踏出这一步呢?不敢去做那注定你的大学是有遗憾的,错过了就是错过了。看过《大话西游》的人应该对最后城头上那段经典的表白映像深刻。你勇敢地去做了,不管成功与否,相信你的大学就没有遗憾!加油!《大话西游》经典表白如果最后不是因为你没有勇气,而是真的是不可能实现在一起的愿望,也不必伤感。“留下只有思念,一串串永远缠,浩瀚烟波里,我怀念,怀念往年,外貌早改变,处境都变,情怀未变”。每次听到梅艳芳的这首歌《似水流年》就特别感动,淡淡的忧伤,曾经也许你们距离很近,可是也许因为什么原因,你们最后没有在一起,处境变了,但你的情怀不曾变过。真诚的祝福对方“你若安好,便是晴天”,有此种气概的你,终有一天会寻到属于你的幸福。
Object 是一切引用类型的父类,所有能被Object接收的均为对象
你上面写的数组 int[] temp = {1,3,5,7,9} 也可以写作 int[] temp = new int[]{1,3,5,7,9}
简言之,所有可以new出来的不管是类也好,接口也好,都可以看做为对象!并且都能被Object接收!
他们的异同之处就在于,对象是一个抽象的概念,而数组是对象,但是他有具体的实例!
例如,String a = "abc"; 当你声明String a 的时候,jvm(java虚拟机)就帮你在堆中开辟一块内存空间,用来存放a的数据"abc",这里的a叫作引用,"abc"则为实例!
其实 String a = "abc" 完整的写法是 String a = new String("abc") ,只不过是当jvm看到a的时候,不管你有没有new它,jvm都会在后台把new的过程给补上而已!
引用类型的变量,可以省去new的步骤,但是class和interface,是必须用new的!
反正你就记住,一切可以new的,都可以看作为对象,并且都可以被Object接收!
我大一的时候学过一学期的C,时间有点久了只能记住一点点。印象最深刻的就是开头那个include
说回来Java和C其实代码风格是很相似的。什么面向过程什么面向对象,说起来很绕,甚至我刚工作时还是很迷糊,但是工作一段时间就能明白了。
java中的对象可以理解为数据存储对象,比如说数据库里有个person表,对应的实体类一定要有一个person类,这个类里一般会有一些简单属性name,sex之类的。这些是每一个person都会有的,书上往往都会说“把大千世界看成一个个的对象”,这样太绕你读不懂就理解为数据库person的每行都有name,sex字段。
至于方法,就是为person编写的业务程序。你的代码需要person有一个听的功能,你就定义一个 void say(),如果这个person什么都不用做,那就没有方法。
package test_1;
import javautilScanner;
public class Person {
private String name;
private String gender;
private int age;
private boolean married;//规定已婚:false未婚:true
public String getName() {
return name;
}
public void setName(String name) {
thisname = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
thisgender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
thisage = age;
}
public boolean isMarried() {
return married;
}
public void setMarried(boolean married) {
thismarried = married;
}
public Person(String name,String gender,int age,boolean married){
thisname=name;
thisage=age;
thisgender=gender;
thismarried=married;
}
public static String marryWith(Person p){
Scanner sc=new Scanner(Systemin);
//这里是你的个人信息
Systemoutprintln("请输入你的姓名:");
String name=scnextLine();
Systemoutprintln("请输入你的性别");
String gender=scnextLine();
Systemoutprintln("请输入你的年龄:");
int age=scnextInt();
Systemoutprintln("请输入婚否:已婚/false 未婚/true");
boolean married=scnextBoolean();
if(genderequals(pgetGender())){
return "同性不能结婚";
}else if(age<22||pgetAge()<20){
return "未到结婚年龄";
}else if(married==false||pisMarried()==false){
return "一方已婚不能结婚";
}
return null;
}
public static void main(String[] args) {
Person p=new Person("凤姐","女",32,true);
Systemoutprintln(marryWith(p));
}
}
欢迎分享,转载请注明来源:表白网
评论列表(0条)