首页 > 编程语言 >类与对象--JAVA

类与对象--JAVA

时间:2022-10-28 11:45:16浏览次数:47  
标签:JAVA -- void System 对象 int println public out

一.类 

 

//使用OOP面向对象解决
//实例化一只猫
Cat cat1=new Cat();
cat1.name="小白";
cat1.age=3;
cat1.color="白色";

Cat cat2=new Cat();
cat2.name="小花";
cat2.age=5;
cat2.color="黑色";

System.out.println("第一只猫的信息"+cat1.name+" "+cat1.age+" "+cat1.color);
System.out.println("第一只猫的信息"+cat2.name+" "+cat2.age+" "+cat2.color);


class cat{
//属性
String name;
int age;
String color;}

 

 

 

 

 

 

 

 

 

Person p1=new Person();
p1.age=10;
p1.name="小明";
Person p2=p1; //p1赋给了p2
System.out.println(p2.age);//p2.age=10

 

二.方法


解读:public--表示方法是公开的
void--表示方法没有返回值
speak--方法的名称
()--表示没有传入的变量
{}-方法体,可以写我们要执行的代码
方法写好后,如果不去调用,不会输出
先创建对象,然后调用方法

public class var{
public static void main(String[] args){
Person p1=new Person();
p1.speak();
p1.cal01();
p1.cal02(100);
int returnRes=p1.getSum(10,20);
System.out.println("returnRes"+returnRes);
}
}

//////////
class Person {
String name;
int age;

public void speak() {
System.out.println("输出");
}
////////////
public void cal01(){
int sum=0;
for (int i =1;i<=100;i++){
sum +=i;
}
System.out.println("计算结果"+sum);}


//(int n)形参列表,表示当前有一个形参,可以接收用户的输入
public void cal02(int n){
int sum=0;
for (int i =1;i<=n;i++){
sum +=i;
}
System.out.println("计算结果"+sum);}

//计算两个数的和
//int--返回一个Int类型的数据
public int getSum(int num1 ,int num2){
int res=num1+num2;
return res;
}}

方法调用机制

 

 

 

1.当程序执行到方法时,就会开辟一个独立的空间(栈空间)
2.当方法执行完毕,或者执行到return语句,就会返回
3.返回到调用方法的地方
4.返回后,继续执行后面方法的代码

//遍历一个数组
public class var{
public static void main(String[] args){
int[][] map={{0,0,1},{1,1,1},{1,1,3}};
int[][] map_1={{2,0,1},{2,1,1},{1,1,3}};
MyTools tool=new MyTools();
tool.printArr(map);
tool.printArr(map_1);
}
}

class MyTools{
//接收一个二维数组
public void printArr(int[][] map){
System.out.println("======");
for(int i=0;i<map.length;i++){
for(int j=0;j<map[i].length;j++){
System.out.print(map[i][j]+" ");}
System.out.println();
} }}

 

 

 

//如何返回多个结果 返回数组
public class var{
public static void main(String[] args){
AA tool=new AA();
int[] return_get = tool.getSumAndSub(3,2);
System.out.println(return_get[0]);
System.out.println(return_get[1]);

}
}

class AA{
public int[] getSumAndSub(int n1, int n2){
int[] resArr=new int[2];
resArr[0]=n1+n2;
resArr[1]=n1-n2;
return resArr;}}

 

注意事项
public double f1(){
   double d1=1.1*3;
   int n=100;
    return n;//ok,int->double

 

 

 

 

 

 

//同一个类中的方法调用:直接调用即可
class A{
         public void print(int n){
                   System.out.println("print(方法被调用) n="+n);
}
       public void Ok(){
                print(10);
}

 

class A{
public void print(int n){
System.out.println("print(方法被调用) n="+n);
}
public void Ok(){
print(10);}
public void m1(){
//创建B对象
B b =new B();
b.hi();}


//跨类中的方法A类调用B类方法:需要通过对象名调用


class B{
public void hi(){
System.out.println("B类中的hi()被执行");}

 

 

 

//编写类AA,有一个方法:判断一个数是奇数还是偶数返回boolean
public class var{
public static void main(String[] args){
AA tool=new AA();
tool.odd(101);

}
}

class AA {
public void odd(int n){
if (n%2==0){
System.out.println(n%2==0);}else{
System.out.println(n%2==0);}
}
}
//编写类AA,有一个方法:判断一个数是奇数还是偶数返回boolean
public class var{
public static void main(String[] args){
AA tool=new AA();
boolean num2 = tool.isOdd(3);
System.out.println(num2);

}
}

class AA{
public boolean isOdd(int num){
if(num%2 == 0){
return true;}
else{return false;}

}
}

 


return num %2 !=0? true : false

//编写类AA,有一个方法:判断一个数是奇数还是偶数返回boolean
public class var{
public static void main(String[] args){
AA tool=new AA();
tool.isOdd(4,4,'*');


}
}

class AA {
public void isOdd(int row,int col,char c) {
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
System.out.print(c);
}
System.out.println();
}


}
}

 


成员方法传参机制

public class var{
public static void main(String[] args){
int a=3;
int b=4;
AA tool=new AA();
tool.swap(a,b);
System.out.println("原本的:"+"a="+a+"b="+b);//a=3,b=4



}
}

class AA {
public void swap(int a,int b) {
//完成了a,b的交换
int tmp=a;
a=b;
b=tmp;
System.out.println("调用的:"+"a="+a+"b="+b);

}
}


基本数据类型,传递的是值,形参的任何改变不影响实参

 

//引用类型的传参机制
public class var{
public static void main(String[] args){
B b=new B();
int[] arr={1,2,3};
b.test100(arr);
System.out.println("main的输出");
for (int i =0;i<arr.length;i++){
System.out.print(arr[i]+" ");}
System.out.println();

}

}

class B {
public void test100(int[] arr){
arr[0]=200;
System.out.println("类的输出");
for (int i =0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
System.out.println();

}
}
引用类型传递的是地址(传递也是值,但是值是地址),可以通过形参影响实参
public class var{
public static void main(String[] args){
B b=new B();
int[] arr={1,2,3};
b.test100(arr);
System.out.println("main的输出");
for (int i =0;i<arr.length;i++){
System.out.print(arr[i]+" ");}
System.out.println();
Person p=new Person();
p.name="javk";
p.age=20;
b.test200(p);
System.out.println("main:"+p.age);

}

}
class Person{
String name;
int age;}

class B {
public void test200(Person p){
p.age=100;
}
public void test100(int[] arr){
arr[0]=200;
System.out.println("类的输出");
for (int i =0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
System.out.println();
}
}
在方法中修改该对象属性,原来的对象会发生变化

 


 输出Main中的age


Java中有俩种数据类型,其中主要有8中基本数据类型和引用数据类型,除了8中基本数据类型以外都是引用数据类型,8中基本数据类型分别是byte,short,int,long,char,boolean,float,double,具体如下:
1、boolean:数据值只有true或false,适用于逻辑计算。
2、char:char型(字符型)数据在内存中占用2个字节。char型数据用来表示通常意义上的字符,每个字符占2个字节,Java字符采用Unicode编码,它的前128字节编码与ASCII兼容字符的存储范围在\u0000~\uFFFF,在定义字符型的数据时候要注意加' ',比如 '1'表示字符'1'而不是数值1,
3、byte:byte型(字节型)数据在内存中占用1个字节,表示的存储数据范围为:-128~127。
4、short:short型(短整型)数据在内存中占用2个字节。
5、int:int型(整型)数据在内存中占用4个字节。
6、long:long型(长整型)数据在内存中占用8个字节。
7、float:float型(单精度浮点型)数据在内存中占用4个字节。(float精度为7-8位)
8、double:double型(双精度浮点型)数据在内存中占用8个字节。
下面说说java中引用数据类型:
引用数据类型分3种:类,接口,数组;
一、类Class引用
可以是我们创建的,这里我不多讲,主要是讲解几个java库中的类
Object :Object是一个很重要的类,Object是类层次结构的根类,每个类都使用Object作为超类,所有对象(包括数组)都实现这个类的方法。用Object可以定义所有的类
如:
Object object= new Integer(1); 来定义一个Interger类
Integer i=(Integer) object; 在来把这个Object强制转换成Interger类
String :String类代表字符串,Java 程序中的所有字符串字面值(如"abc")都作为此类的实例来实现。检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本、在该副本中、所有的字符都被转换为大写或小写形式。
Date :Date表示特定的瞬间,精确到毫秒。Date的类一般现在都被Calendar 和GregorianCalendar所有代替
Void :Void 类是一个不可实例化的占位符类,它保持一个对代表 Java 关键字 void 的 Class 对象的引用。
同时也有对应的Class如:Integer Long Boolean Byte Character Double Float Short

public class var{
public static void main(String[] args){
B b=new B();
int[] arr={1,2,3};
b.test100(arr);
System.out.println("main的输出");
for (int i =0;i<arr.length;i++){
System.out.print(arr[i]+" ");}
System.out.println();
Person p=new Person();
p.name="javk";
p.age=20;
b.test200(p);
System.out.println("main:"+p.age);

}

}
class Person{
String name;
int age;}

class B {
public void test200(Person p){
p=new Person();
p.age=100;
p.name="kk";
//p=null;
}
public void test100(int[] arr){
arr[0]=200;
System.out.println("类的输出");
for (int i =0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
System.out.println();
}
}

//编写一个方法copyPerson,可以复制一个Person对象,返回复制的对象。
//克隆对象,注意要求得到的新对象和原来的对象是两个独立的对象,只是属性相同

public class var{
public static void main(String[] args){
Person p=new Person();
p.name="milan";
p.age=100;
//创建一个对象
MyTools tools =new MyTools();
Person p2 =tools.copyPerson(p);
System.out.println("p的属性"+p.age+p.name);
System.out.println("p2的属性"+p2.age+p2.name);
System.out.println(p==p2);
}
}
class Person{
String name;
int age;
}

class MyTools{
//编写方法的思路
//1.方法的返回类型 Person
//2.方法的名字 copyperson
//3.方法的形参(Person p)
//4.方法体,创建一个新对象,并复制属性,返回即可
public Person copyPerson(Person p){
//创建一个新对象,不要改掉别人的Person
Person p2 = new Person();
p2.name=p.name;
p2.age=p.age;
return p2;
}}

 

 

标签:JAVA,--,void,System,对象,int,println,public,out
From: https://www.cnblogs.com/maxzz/p/16826478.html

相关文章

  • Java读取properties配置文件工具包
    一、properties文件简介java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式,在properties......
  • CMake —— 跨平台 编译 软件 & visual studio支持
    CMakeisanopen-source,cross-platformfamilyoftoolsdesignedtobuild,testandpackagesoftware.CMakeisusedtocontrolthesoftwarecompilationprocess......
  • Oracle RAC调整网卡MTU值
    ---原文https://cloud.tencent.com/developer/article/1658019在OracleRAC的环境中,如果我们发现OSW监控数据显示包重组失败率过高,就需要引起足够的重视,因为这很可能会引......
  • 拉取镜像报Error response from daemon: Get https://: http: server gave HTTP respo
    现象:拉取镜像报Errorresponsefromdaemon:Gethttps://:http:servergaveHTTPresponsetoHTTPSclientharbor默认是https协议的,如果想要通过http协议拉取harbor的......
  • git commit 多文件(提交指定文件) 命令里面多文件需要带文件路径,就是 status 里面查
    gitcommit多文件(提交指定文件)命令里面多文件需要带文件路径,就是status里面查询出来的文件路径gitcommit多文件在项目中一个文件夹下,若想提交其中的几个文......
  • 小程序传参和接参navigateBack
    1.A->B需要从B拿值,返回A,小程序官网B页面的一个事件函数//带参返回上一页面letpages=getCurrentPages();//获取当前页面栈if(pag......
  • 笔记:emmet语法
    emmet语法笔记:在写代码工具中快速生成HTML结构语法:以div为例:1、快速生成标签,下载autoclosetag插件,输入div然后回车,自动添加关闭标签;2、同时生成多个同级的相同标签:di......
  • vue canvas 线上签名
    <template> <divid="box">   <divclass="main"id='main'>     <canvasref="saveCanvas"width="500"height="400"@mousedown="ctxDown($event)"@mousem......
  • 221027 %你赛
    我对舟舟人的厌恶更深一层(大雾T1烧结核凝晶题目斯宝在维多利亚发现了一种新的物质——转质盐。巨船的工匠发现转质盐可以制作一种名叫烧结核凝晶的材料,工匠们已经试制......
  • pgsql指定部分字段去重
    --基于ig.start_pile,ig.end_pile字段去重witheteas(SELECT*from(SELECTROW_NUMBER()OVER(PARTITIONbyig.start_pile,ig.end_pileORDERBYig.start_pile......