创建java类并实例化类对象
创建java类并实例化类对象例一
1.面向对象的编程关注于类的设计
2.设计类实际上就是设计类的成员
3.基本的类的成员,属性(成员变量)&方法
面向对象思想的落地法则一:
1.设计类,并设计类的成员(成员变量&成员方法)
2.通过类,来创建类的对象(也称作类的实例化)
public class zoo {
public static void main(String[] args) {
//基本数据类型的声明,数据类型 变量名=初始化值
//类的实例化:如a1就是一个对象
Animal a1=new Animal();
//通过对象调用属性
a1.name="阳阳";
a1.age=3;
System.out.println("name:"+a1.name+" age:"+a1.age);
//通过对象调用方法
a1.eat();
a1.sleep();
}
} class Animal{
//1.属性
String name;
int age;
//2.方法
public void eat(){
System.out.println("动物进食");
}
public void sleep(){
System.out.println("动物睡觉");
}
//getName是得到name的值
public String getName(){
return name;
}
//setName是给name设计一个值
public void setName(String n){
name=n;
}
}
二、创建多个对象,彼此各自拥有一套类的属性,当对其中一个属性进行修改时,不会影响到其他对象的属性
类对象的内存解析
public class zoo {
public static void main(String[] args) {
int i = 10;
//基本数据类型的声明,数据类型 变量名=初始化值
//类的实例化:如a1就是一个对象
Animal a1 = new Animal();
//通过对象调用属性
a1.name = "阳阳";
a1.age = 3;
System.out.println("name:" + a1.name + " age:" + a1.age);
//通过对象调用方法
a1.eat();
a1.sleep();
//再创建一个类的对象
Animal a2 = new Animal();
System.out.println("name:" + a2.name + " age:" + a2.age);
a2.name = "小花";
System.out.println("name:" + a1.name + " age:" + a1.age);
System.out.println("name:" + a2.name + " age:" + a2.age);
//a3不意味着相较于啊a1重新创建的一个对象,而是a1与a3公用一个对象实体
Animal a3 = a1;
System.out.println("name:" + a3.name + " age:" + a3.age);//与a1一样
a3.name = "维尼熊";
System.out.println("name:" + a1.name + " age:" + a1.age);
}
} class Animal {
//1.属性
String name;
int age; //2.方法
public void eat() {
System.out.println("动物进食");
} public void sleep() {
System.out.println("动物睡觉");
} //getName是得到name的值
public String getName() {
return name;
} //setName是给name设计一个值
public void setName(String n) {
name = n;
} }
三、类的属性(成员变量)
成员变量vs局部变量
局部变量:是在某个方法中的变量
成员变量:在类中定义的变量
在类中没有在其他方法中定义的变量就是成员变量
如public class tip{
int j=10;
}
这个里面的j就是成员变量
public void setName(String n){}
中的n就是一个局部变量
或者是在方法里面定义的也叫局部变量如:
public void addAge(){
int i=2;
age +=i;
}
中的int i=2;这个也是局部变量
成员变量和局部变量的相同点:
1.格式都一样: 数据类型 变量名 = 初始化值
2.都有作用域:局部变量作用在它所存在的方法中,方法变量作用在它所存在的类中。
一旦出了它们所存在的范围就不能使用,除非通过对象的调用(如:.name来调用)
成员变量和局部变量的不同点:
1.声明的位置不同:成员变量声明在类里,方法外。局部变量声明在方法内,和方法的形参部分(public void setName(String n){}的n)
代码块内
2.成员变量的修饰符有四个:public、private、protected、缺省(就是省略不写)(如public class v{
int b=2;
}这里的int前面可以加修饰符)
局部变量没有修饰符,与所在的方法修饰符一样(如public void addAge(){
int i=2;
age +=i;
}这里的i是局部变量,修饰符就是方法的修饰符public)
3.初始化值:无论哪种变量都有初始化值,成员变量如果没有赋值不同的数据类型则有默认的初始化值。
局部变量一定要显示赋值,因为局部变量没有默认的初始化值
4.二者在内存中存放的位置不同:成员变量存在于堆空间中,局部变量存在于栈空间中
四、类的方法:提供某种功能的实现
1.格式:权限修饰符(public、private、protected、缺省(就是省略不写)) 返回值类型(void:无返回值/具体返回值) 方法名(形参,String等){}
2.关于返回值类型:void,表明不需要返回值。
如:public void eat{
System.out.println("进食");
}
有返回值的类型:在方法最后一定有return+返回值类型对应的变量
如:public int getAge(){
return age;
}
记忆:void与return不能同时出现在一个方法内,像一对冤家
3.方法内可以调用本类的其他方法或属性,但是不能在方法内定义方法
//(1)
public class W {
String name;
int age;
String sex; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} public void study(){
System.out.println("studying");
}
public void showAge(){
System.out.println(age);
}
public int addAge(int i){
age+=i;
return age;
} public static void main(String[] args) {
W a=new W();
a.study();
a.showAge();
a.addAge(2);
a.showAge();//相等于System。out。println(a.age);
System.out.println();
//(2)
W b=new W();
b.showAge();
a.showAge();
}
}
public class circle {
public static void main(String[] args) {
Tcircle c1=new Tcircle();
c1.r=2.3;
c1.findArea();
}
}
class Tcircle{
double r=1.0;
//提供一个方法,用来获取圆的面积
public void findArea(){
System.out.println(3.14 * r * r);
}
}
创建java类并实例化类对象的更多相关文章
- 140、Java内部类之实例化内部类对象
01.代码如下: package TIANPAN; class Outer { // 外部类 private String msg = "Hello World !"; class ...
- java和C#实例化类初始化顺序
c# 初始化顺序 子类的静态字段 子类的静态构造方法 子类的实例字段 父类的静态字段 父类的静态构造方法 父类的实例字段 父类的实例构造方法 java 初始化顺序 初始化过程: 1. 初始化父类中的静 ...
- java第2天:类,对象,封装和构造方法
1 面向对象简述 将 {1,3,45,56,78,90}转化为[1,3,45,56,78,90] 1-2 方法1:面向过程 代码块 public class test { public static ...
- Java类的定义与类的实例化
目录 Java类的定义与类的实例化 类的定义 定义一个简单的类 定义一个成员变量 定义一个方法 定义一个构造器 类的实例化 创建对象及使用对象: 创建对象的过程在内存中的表现 Java类的定义与类的实 ...
- Python第十六天 类的实例化
首先 , 先定义一个 简单的 Person 类 class Person: head = 1 ear = 2 def eat(self): print('吃饭') 关于什么是类, 定义类, 类对象,类 ...
- 编写一个带有main函数的类,调用上面的汽车类,实例化奔驰、大众、丰田等不同品牌和型号,模拟开车过程:启动、加速、转弯、刹车、息火,实时显示速度。
//程序入口 public static void main(String[] args) { // TODO Auto-generated method stub ...
- PHP类(一)-类的实例化
类的实例化就是对象.一个类可以分成两个部分,一个是静态描述,就是类里的成员属性.第二个是动态描述,就是类里的成员方法,也就是对象的功能. 声明一个类,可以在class前加一些关键字,如abstract ...
- 创建Java类并实例化深入理解
package com.sanguosha.java; import java.util.Scanner;//导入包 public class TestPerson { public static v ...
- 创建Java类并实例化的基本过程
package com.sanguosha.java; /* * 面向对象实现的过程 * 1.创建类并设计类的成员(成员变量即属性and成员方法即方法) * 2.通过类来创建类的对象,也称类的实例化 ...
随机推荐
- CVE-2018-8120 Windows权限提升
来源 : bigric3/cve-2018-8120 Detail : cve-2018-8120-analysis-and-exploit 演示图 下载 CVE-2018-8120.zip
- ssm+redis整合(通过cache方式)
这几天的研究ssm redis 终于进入主题了,今天参考了网上一些文章搭建了一下ssm+redis整合,特别记录下来以便以后可以查询使用,有什么不足请大牛们提点 项目架构 1.pom.xml < ...
- guxh的python笔记八:特殊方法
1,类的特殊方法 新建一个类,本章内容中的特殊方法如果不创建类或新增方法,默认使用的就是下面的类: class Foo: """this is Foo"&q ...
- 『TensorFlow』读书笔记_Inception_V3_下
极为庞大的网络结构,不过下一节的ResNet也不小 线性的组成,结构大体如下: 常规卷积部分->Inception模块组1->Inception模块组2->Inception模块组3 ...
- PAT 1084 Broken Keyboard
1084 Broken Keyboard (20 分) On a broken keyboard, some of the keys are worn out. So when you type ...
- day 01 python基础
1.计算机历史 2.python历史 宏观: python2和python3的区别: python2 源码不标准,混乱,重复代码过多 python3 统一标准,去除重复代码 3.python环境 ...
- 显卡、GPU和CUDA简介
http://blog.csdn.net/wu_nan_nan/article/details/45603299 声明: 本文部分内容来自网络.由于知识有限,有错误的地方还请指正.本帖为自己学习过程的 ...
- unity中将多个图片进行椭圆排序
//保存需要排序的精灵容器 public GameObject[] Sprites; public Transform centrePoint;//椭圆的中心点 ;//每个方块间的角度偏移 //保存位 ...
- 演示stop暴力停止线程导致数据不一致的问题,但是有些有趣的发现 (2017-07-03 21:25)
如注释所言 /** * Created by weiwei22 on 17/7/3. * * 这里主要是为了演示stop导致的数据不一致的问题.stop会暴力的结束线程并释放锁,所以有可能在恰好写了一 ...
- c语言:开平方根sqrt程序01
#include <stdio.h> int sqrt01(int x); void main(void){ int x=49,y; y=sqrt01(x); if(y<0) pri ...